Allow transfers to be added with blocking until the queue is sufficiently small. Better control over which end of the queue to add a transfer to.
Efficiently finding transfers that need to be done to get two repos back in sync seems like an interesting problem.