Ok displayOff ist etwas unglücklich gewählt, aber ich sende ja nur Zeichen wenn displayOff = true ist, dann wird nach dem Monofloptimeout displayOff = false; gesetzt und nach dem retriggern des Monoflop wieder auf displayOff = true;, so dass man bei neuePosition = true; wieder senden kann.
Ich verstehe aber nicht worauf du mit else if hinausmöchtest?