You can use triggers instead of waypoints for the convoy, and then use a S&D waypoint that is synchronized with your detected trigger/whatever. I did this in my platoon commander mission, in the missions depot.
For each of your groups, make a small trigger (radius 15 or so) at each of their "waypoints". Name it something like g1w1 (for "group 1 waypoint 1") and so on. Group it to it's group, so only that group can activate it. In it's activation field, write:
{_x move getpos g1w2} foreach thislist
Where "g1w2" is their second "waypoint" trigger. Repeat as needed, for all the groups. Then give the group two waypoints; one on himself, synched to your detection trigger. The next is a S&D waypoint with a radius covering the mission area.
NEway, I'm sure that isn't the best way to do it, but that is how I solved this problem a long time ago. Only problem is you need to know approximately where your ambush is going to occur.
One of these days I'm going to get around to writing a convoy script suite that makes stuff like this easy to do.