So, Fehler gefunden!
Beim Abzählen der benötigten Prozessorzyklen habe ich mich verrechnet.
Nach jedem empfangenen Byte habe ich erstmal eine Log-Message mit 5-10 Zeichen/Bytes auf die serielle ausgegeben - synchron!! Dass das Ausgeben auch abhängig von der Baudrate ist habe ich fröhlich unter den Teppich gekehrt. Deshalb ist alles durcheinandergekommen.
Jetzt bin ich schlauer und gebe nur noch max. ein Byte aus