How can I simulate physics steps in advance?
I think you can use four ray sensors, info can be found here from blender api.
Depending on what you are doing, you may want use radar.

From that if some sensor collides with some obj you can get the distance obj1.getDistanceTo(obj2), world trajectory and speedobj2.localLinearVelocity in m/s.

Anyway, I come up with this, the trajectory. I hope its useful.

from bge import logic
from mathutils import Vector
import math

class vehicle:

    def __init__(self, body):
        self.cont = logic.getCurrentController().owner
        self.body = body
        self.front_ray = self.cont.sensors["front_ray"]
        self.main = self.moving
        pass

    def moving(self):
        velocity = Vector((0,40,0))
        velocity.magnitude = 4
        self.body.setLinearVelocity(velocity,1)
        self.body.applyRotation((0,0,0.02),1)
        if self.front_ray.hitObject:
            self.check_thread(self.front_ray.hitObject)
            pass
        pass

    def check_thread(self, obj):
        rot_obj = obj.localOrientation.to_euler()
        self_rot = self.body.localOrientation.to_euler()
        max_angle_limit = math.radians(-160)
        min_angle_limit = math.radians(-200)

        if rot_obj.z &lt; max_angle_limit and rot_obj.z &gt; min_angle_limit:
            print("ALARM : COLLISION DETECTION FROM :", self.front_ray)

        pass

def main(cont):
    own = cont.owner

    if not "init" in own:
        own['init'] = True
        own['vehicle'] = vehicle(own)

    own['vehicle'].main()