[#6] Deal with small buffers

We need to deal with the case whereby we end up with a buffer that is
smaller than the max size, but no new messages are coming in.
Because we wait for the buffer to reach the max size, we will never
process the buffer! That is bad.