Ich schau es mir mal an sobald ich Zeit habe - aber da gibt es leider viele Möglichkeiten was da Probleme verursachen könnte denn da spielt ja einiges zusammen und vieles läuft quasi parallel.

Du könntest aber in der Zwischenzeit schonmal einige weitere Debug Ausgaben einfügen um genauer zu sehen wie alles genau zeitlich in welcher Reihenfolge abläuft...
(writeString_P("Stelle 1\n") 2, 3, 4 jeweils vor und nach Bedingungen und Funktionsaufrufen einfügen und ggf. paar Variablenwerte ausgeben lassen usw.)

MfG,
SlyD