If no queue, process pending batch immediately

There might not be another change to complete the batch any time soon. A
timeout could do nothing but process the 'incomplete' batch anyway and the
objective of batching is to improve performance, not introduce unnecessary
latency.
Return on abortReplication

Replication is aborted on errors, in which case the callback should not
continue. The return was missing on several calls to abortReplication.