Summary of Concern
Using the schema_only and schema_only_recovery still requires either setting a global read lock, or locking individual tables, before it reads the schema out. My understanding is that this is to prevent DDL changes to occur at the same time the "snapshot" of the schema is being processed.
Unfortunately in many high throughput production environments performing locks across entire table(s) is just not a feasible option.
Create a new snapshot mode (or a configuration option to existing snapshot modes) that allows bypassing the table lock statements. Users could enable this mode/configuration option understanding the risk of overlapped DDL statements could cause issues in properly replicating data.