sendBytes
Writes raw bytes to the underlying stream (serial port, TCP socket, etc.). Implementations may block until the driver accepts the bytes, so direct callers must already be running on an I/O dispatcher. Framed packet sends use queueFramedSend, whose writer controls dispatcher confinement. Subclasses that rely on queueFramedSend's default writer must therefore supply an I/O-confined scope.