Throttle DDL statement to avoid impacting performance of other queries
I hope your tables are InnoDB, not MyISAM.  Some of the following will not work well with MyISAM.

Plan A:  Use Percona's pt-online-schema-change.  It is self-throttling.

Plan B:  (You don't like this.)  Many ALTERs can, especially in 5.6 or 5.7, run ALGORITHM=INPLACE, making it much less invasive than the way (ALGORITHM=COPY).

Plan C:  (You don't like this.)  Play replication games.  This leads to virtually zero impact on other queries.

Plan D:  Galera-based replication (PXC, MaraiDB+Galera, etc).  This is also a replication game, but the tools probably make it less effort for the DBA.

Plan E:  If you are adding a column, build a parallel table for the extra column(s).  This has zero impact to set up.

Plan F:  Have a layer of code to hide the original table from the modified table.  Write some extra code to handle, with zero downtime, the transition, regardless of how long it take.

Plan G:  Pay for MEB - it plays some nifty games to make backup faster.