Du hast nicht nachgelesen.
PulseIn wartet (WARTET!) bis was passiert.
Wenn nun (weil die Entfernung grösser ist) nichts passiert, wartet PulseIn ziemlich lange. Das bremst dir das gesamte Programm aus!
Kannst du aber recht einfach beheben (und damit auch noch die US-sensoren entschieden schneller machen, wenn du die volle Reichweite gar nicht brauchst). Lies die Referenz mal, da steht wie...

Dreimal messen ist für ne vernünftige Vermittlung zu wenig. Ich hatte das nur vorgeschlagen, weil US generell etwas lahmarschig ist. Würd ich beim Monster zehnmal messen, ist das Ding durch die Mauer schon durch ehe der Rechner sicher wär: da ist was im Wege.
Und: man kann das filtern noch viel weiter treiben. Z.b indem unglaubwürdige Resultate gleich ausgesondert werden:

Messung 1: 3.80m
Messung 2: 0.20m
Messung 3: 3.30m
Hier vermittle ich gar nich erst- der mittlere Wert fliegt direkt raus, und es wird nen neuer geholt. Da kann man sogar noch die aktuelle Geschwindigkeit reinnehmen, und feststellen ob es nen starres oder bewegliches Hindernis ist- und verschieden drauf reagieren. Das klappt aber nur, wenn man die Zeit wirklich hat.
Es ist immer wieder spannend, wie sich die ganzen Theorien in der Praxis in nichts auflösen, weils so einfach eben doch nicht funktioniert. Mir macht das mit den meisten Spass.