Clean up some of the logic.
- Always dispose stream on connection close (wrapped in using)
- Flush buffered request data async.