Very slow one-shot replication when in background on iOS

Ok, so is there a workaround? Is it possible to start a one-shot replication without starting from scratch each time?

And what about the log messages, they don’t look related to replication at all. Sometimes I see this (and everything works well):

App backgrounding; starting temporary background task

… and sometimes I see this (and no replication appears to start at all):

App backgrounding, but can't run background task; suspending

I can see any pattern to it. Here’s another example log; 4 push notifications are received. For the 1st and 2nd the app failed to replicate, the 3rd one worked fine, and the 4th failed. I’ve not touched the device at all in-between notifications. As you can see, sometimes it works and sometimes it doesn’t.