It basically does … it wakes up as soon as a document is changed. It does wait a fraction of a second to see if other docs are being changed too, so it can send them in one request to the server instead of multiple.
It’s possible that if the app is backgrounded during that brief delay, the replicator decides not to ask the OS for extra time to run, because it’s not technically in the middle of network activity. I’d have to investigate the code to make sure. Could you file an issue?
Unfortunately I don’t think there’s a way for you to change this behavior.