write now makes sure to drain before allowing another packet write refactored tests with new await send returning processed packet.