Probably a stupid question (and I cringe everytime I say that), but have you tried something like this...warning..sqs to follow, I'm lazy at the moment and this is an old script I dug up.
call.sqs
_man = _this select 0
_group = [_man] call splitgroup
_evengroup = _group select 0
_oddgroup = _group select 1
_oddgroup move getmarkerpos "one"
@unitready (leader _oddgroup)
~10
{[_x] join (leader _evengroup)} foreach units _oddgroup
~10
_splitminor join group _man
exit
splitgroup.sqf
private ["_Ldrgrp","_grp","_oddPeople","_Oddldr","_numg","_v"];
_Ldrgrp = _this select 0;
_grp = units _Ldrgrp;
_numg = count _grp;
_Oddldr = _grp select 1;
_oddPeople = [];
for [{ _v = 1 }, {_v < _numg}, {_v = _v + 2}] do
{
_oddPeople = _oddPeople + [_grp select _v];
};
_oddPeople join (createGroup (side _Oddldr));
[_Ldrgrp, group _Oddldr];
This takes "man"s group, divides it evenly, then splits the group in two, moves on group to a marker, then rejoins the groups after 10 seconds. If this worked, they'd join from created actions instead of by the 10s timers.