If possible, the refueling should be stopped at the point it was last at when crossing the sensor. Tire change and repair would be trickier, but would it be possible to keep the time spent so that the next time the car comes in to take care of those things, the remaining time is all it would take? So, if repair or tire change were set to 10 seconds, and the car was pushed out at 5s to go, when he comes in to repair or change tires, it only takes 5 seconds? I wouldn't want him to get a full repair or tire change by being pushed out, but I also wouldn't want him penalized by having to start from scratch.
As for detecting what car pushed the other out if you have two lanes... can you describe the sensor and track/pit layout that your question is based on? All the pit lanes I race on, whether one lane or two, have a pit in sensor before the pit lane splits into two lanes, and the pit exit sensor is after the two lanes come down to one... you would know who pushed the car out of the pit by the ID of the car immediately following the one being pushed out. Or, to be more precise, the ID of the ACTIVE car (not in the pit menu) following any and all cars being pushed over the sensor that are still in the pit menu. This would allow for situations where a magnet racer is able to push multiple cars through the pit exit and back onto the track.
I need to know what kind of track and sensor arrangement you are basing your question on, because I still can't figure out why you're asking it.