@ryanc I imagine it's like this (sadly) common setup:
* Receiver is a for() loop, either pulling bytes out of a UART, or executing a command.
* UART is either a 1 byte FIFO, or emulated GPIO.
* While executing a command, UART is dropped.
* Accessory, vice versa situation.
* This all "works" because the protocol will have a "documented" AC timing spec: T_inter_command_gap>=20ms.
There's nonsense like this common in devices everywhere, but to be fair it sure makes things cheaper.