let the default output block instead of being time limited

* only the default output can block, the stream outputs still have a time limit so they don't block the system writing messages
Refactor blocking message processing in OutputBufferProcessor