Simplify the end of message detection in _usb_read and allow it to return without doing another read if the message is already in the buffer.