Regularly check whether replication runloop should exit

Using [NSDate distantFuture] was meaning that the runloop blocked,
meaning that _stopRunLoop was never checked.