Repeatedly calling `flush` doesn't seem very optimal. - `HTTPClient.execute` calls `writeAndFlush` and because the body write isn't queued until the head has been written, the flush occurs immediately after the head has been written. - `TaskHandler.writeBody` calls `writeAndFlush`. Ideally a simple HTTP request with one `ByteBuffer` shouldn't need to call flush until after the end part.