Wait for batch outside of Watcher#loop_once

This allows loop_once to be called independantly of waiting for
an incoming signal, which is useful if I want to attempt to
process batches in my application test code, where I don't want
to block.