Can't count on a single batch.Write() incrementing MsgCount by 1 anymore
a batch Write() != a single message anymore

So encapsulate a batches "fullness" inside of Batch.Full() and use a
boolean flag to setup the timer after the first write.
Set the timer before writting to the batch

The idea is that we don't know how much time batch.Write() will take, so
let's start our timer beforehand so that we account for that time as
well.