I tried if({alive _x} count (crew _x)) == 0) in Common_UpdateEmptyVehicle.sqf.
Also tried adding killed eventhandler to Common_InitUnit.sqf, but neither worked.
if ((BIS_WF_Constants GetVariable "ABANDONEDVEHICLETIME") > 0) then
{
_unit AddEventHandler ["GetOut",{_this Spawn BIS_WF_UpdateEmptyVehicle}];
_unit AddEventHandler ["killed",{_this Spawn BIS_WF_UpdateEmptyVehicle}];
};
Been working with this. The problem seems to stem from an object reference issue.
At the time the unit is killed their variable is a group reference, e.g. B 1-1-A:2. setPos of the unit apart from the vehicle will work while the unit has its group reference. But once the leader knows the unit is dead ("We lost 2!") the unit goes to grpNull, becomes an empty object, and becomes an object reference, e.g. ###: usmc_soldier.p3d. But for some reason not clear to me, the unit object and the vehicle object become the same reference. diag_log on the unit and the vehicle separately returned ###: usmc_soldier.p3d references for both. At that point, not only does BIS_WF_isSoldier return true on the vehicle, but SetPos of the unit apart from the vehicle doesn't work.