Consistent InnoDB dumps with mysqldump
DDL changes implicitly commit only if they are in the same connection. As they are in a different connection from the mysqldump they lock wait until the dump is complete and then they will complete.
As such hopefully DDL changes aren't as time critical and --single-transaction will suit your needs without any addition fiddling.
Alternate would be to create a replica server there and backup from that. An DDL in the replication stream will wait however it won't impact the user or the backup.