Try using respawn type "base". This might allow you to eliminate needing an extra squad for the players to respawn into.
respawn = "base"
respawndelay = time
Obviously, replace "time" with however long you want the delay to be.
You'll need to make two markers with the following names:
Respawn_West
Respawn_East
Create the markers where you want the players to respawn, which will most likely be at the HQ for the player squad. I'm not sure if the units will retain the names you gave to the original units, and I am unable to test this right now. However, I'll assume that it does retain the names.
Regarding your vehicle, it sounds like you should use "virtual" waypoints instead of the real waypoints. That way, you don't have to worry about the car driving off to other waypoints instead of following your orders to pick up the reinforcements.
In order to reduce some driving time and the number of waypoints, perhaps after the squad is dropped off the first time, the car should drive to the respawn area to wait. That way, when the dead players respawn, they can jump into the car immediately. The car will then take them to the location of the original group.
To do my ideas, try the following steps. All of the following code assumes that all units in the players' squad are human-controlled. In other words, I didn't include code that orders AI units to board/disembark the car. If one or more units might be AI-controlled, input the appropriate code as necessary. Otherwise, the group leader must order the AI into and out of the car.
1. Create gamelogics where you want the car's "waypoints" to be. I see you needing at least 3: the HQ (respawn area), first combat zone, and second combat zone (or wherever they go after finishing the first fight). My suggestion for your gamelogic names:
hq: the HQ (respawn area)
wp1: first combat zone
wp2: second combat zone
2. Create a script with the following code. I assume that the car will begin the mission close to the group.
[Begin Script]
; Check if the group is in the car, then order the car to move to wp1.
@ ("_x in car1" count units squad1 == west countSide units squad1)
car1 doMove getpos wp1
; Check if the group is out of the car when the car is within 50 meters of wp1, then order the car to move to hq.
@ (car1 distance wp1 < 50 and "not (_x in car1)" count units squad1 == west countSide units squad1)
car1 doMove getpos hq
; Check if the first task is done, then set the status of objective 1 to DONE and set wp1Done to true.
@ (Whatever you need to see if they are done, such as having killed all enemies in the area.)
"1" objStatus "DONE"
wp1Done = true
; Check if the reinforcements are in the car, if any. reinforcements is the name of an array that contains all of the respawned units. Then, order the car to move to squad1's position.
@ (wp1Done and "_x in car1" count reinforcements == west countSide units reinforcements)
car1 doMove getpos leader squad1
; Check if squad1 is in car1. We don't need to see if the car actually made it to squad1's position, since that's irrelevant. Then, move on to wp2.
@ ("_x in car1" count squad1 == west countSide units squad1)
car1 doMove getpos wp2
; And so on…
[End Script]
I hope you can handle any additions to the script from here.
What's going on in this script is that the @ (wait) command tells the script to wait until the indicated conditions are true, then continue. It'll execute whatever code comes after the @ command until it reaches the next one. It'll wait again until that condition is true, and so on.
Execute this script in the init.sqs script so that it begins running immediately.
For this script to function properly, you need to create and update an array (reinforcements) that stores the names of the units that have died and respawned. That will obviously have to be managed in your respawning script, if you have one. Maybe you have ideas on how to do that. At the moment, I don't have access to the game, so I can't test any ideas.
I hope this gives you a boost in the right direction. Good luck!