Hi inka,
ich werde mich jetzt erstmal hier ein wenig ausklinken, obwohl ich dein Projekt weiterhin interessant finde.

Davor aber noch kurz abschließend:
Verstehe ich das richtig: in der ursprünglichen version wurde nicht der aktuelle sensor-wert in "temp" geschrieben, sondern ein wert aus dem IR-array?
Nein, so nicht richtig (siehe mein letzter Post!).

der stop-befehl wird erreicht, mit diesem, unverändertem (Code)
Ich denke: Nein. Testen!!!

das ist aber das ergebnis meiner versuche.
Ich würde dir empfehlen, die Einzelfunktionen (IR-Abfrage, Bumper-Abfrage, Drehen bis IR erkannt, Geradeausfahrt...) getrennt voneinander zu schreiben und zu testen. Damit vermeidest du, dass du ein Gesamtsystem als erfolgreich testest, was im Detail noch ggf. Macken hat.
Besonders die IR-Abfrage würde ich als eigenständige Task (Aufgabe) für die Hauptschleife schreiben: Diese Task gibt nur eine Variable für IR AN oder IR AUS aus und tut sonst nichts. Dabei ist es deine Festlegung, ob IR AN erst nach 10 identischen Abfragen im 50ms Abstand ausgegeben wird oder irgendwie anders.