send_queued_all gets called a LOT, only alloc a buffer if we're sending something