Nach vielem Gebastle wollte ich eine Ordentliche und Unvierselle Lösung entwickeln.
Dann solltest du dir zuerst ein Daten- bzw. Befehlsprotokoll ausdenken.
Diese Queue brauchst du eigentlich nicht denn der PC kann empfangene Daten/Befehle sofort verarbeiten.
In Senderichtung braucht du eigentlich auch keine Queue; du haust die Daten/Befehle einfach raus und SerialNG besorgt das Zwischenpuffern.
Wie möchtest du denn die Befehle trennen?
Sehr häufig wird z.B. am Ende eines Befehls ein CR-Zeichen (oder CR+LF) geschickt.