Extend logging and server feedback
- More details are logged about messages that cannot be sent.
- Messages are now explicitly dropped when the output queue is full instead of accumulating goroutines in the hope that the queue might have space in the future.
- When the input queue is full a temporary error is returned.