Du darfst keine blockierenden Funktionen (nichts länger als ein paar Millisekunden) in den Bumper Event Handler einfügen.
Das hier: move(50,BWD,DIST_MM(150),true);
blockiert.
Bewegungsabläufe (Rückwärtsfahren + Drehen) nach Kollision machst Du am einfachsten komplett OHNE den Event Handler komplett blockierend, oder aber (besser) mit einer Statemachine und Abfrage ob die Bewegung beendet wurde.

Ohne Event handler - einfach in der Main loop die Bumper Variablen abfragen.
Aber vorsicht: wenn dann in einem anderen Event Handler auch bewegungsfunktionen aufgerufen werden, müsste das mit einer zusätzlichen Variable gesperrt werden (also "markieren" das da schon jemand die Motoren verwendet).
Aber das reicht nur für einfache Dinge ... komplexere Sachen macht man dann besser mit Statemachines / Subsumption.

MfG,
SlyD