That's a pretty good description of the problem you are having. I love how you've calculated a percentage success rate for your chosen strategy. :D
I'm tempted to suggested maybe some non-military losses are acceptable, but I suppose not for a speedrun.
In case it might have been useful, I took a look at the DLL for Eden08. Didn't see anything particularly enlightening. I haven't analysed the code in much depth, but it looks like the attack groups are randomly chosen.
There are a number of triggers:
EnemyArrive1N
EnemyArrive1Q
EnemyArrive2N
EnemyArrive2Q
EnemyArrive3N
EnemyArrive4N
EnemyArrive4Q
EnemyArrive5N
EnemyArrive6N
EnemyRepeat6N
There is some asymmetry, where 3, 5, and 6 only have the "N" option, not the "Q" option. I'm uncertain what the letter designates. The last one looks to be a repeat trigger for long running games.
The triggers all call the same code, with different parameters. The code the triggers call sets up the attack groups. Based on the parameters set in the trigger callbacks above, and some random numbers, it selects a group to spawn. Each group has both an Easy and a Hard variant, based on difficulty setting, such as Group1AEasy and Group1AHard. The options are (with Easy/Hard stripped):
Group1A
Group1B
Group2A
Group2B
Group2C
Group3A
Group3B
Group3C
Group3D
Group3E
Group3F
Again, there is some asymmetry, with later level groups having more letter variations.
More random numbers are used, and then CreateUnit and ScGroup::TakeUnit are called in a loop. That would where the attack group is formed.
I didn't see any code to suggest the player's current state of progress is used to determine any aspect of the fight groups.