Das Objekt wird in ca. 15ms Abständen (weil OnIdle) aktualisiert, also Position und Geschwindigkeit.
Wenn du mit Zeitintervallen arbeitest, musst du berechnen, welche Position und Geschwindigkeit das Objekt am Ende des Zeitintervalls hat. Wenn innerhalb des Intervalls eine Richtungsumkehr erfolgt, musst du halt ausrechnen, wie die Werte dann sind. Einfach zu diesem Zeitpunkt eine bestimmte Position anzunehmen, die womöglich nicht mal zur Geschwindigkeit passt, kann nicht wirklich funktionieren.
Eventuell musst du das Intervall aufsplitten, in dem du den Aufprallzeitpunkt bestimmst, und dann die beiden Teile einzeln ausrechnen.