The problem with setCombatMode (hold fire) is that the units will only shoot at the enemy if the enemy is shooting at them. So much for ambush, or the element of surprise. It might be feasible to make a script that detects when a unit is within a certain range of an enemy, then switches him to "open fire", and then switches him back to "hold fire" after the enemies are dead.
The problem with that is that it only would work with AI squads, since if the player is the leader, he can order his men to open fire whenever he wants. Another similar possibility is to make all the enemies captives, and have a script that detects when they are within a certain range of the player's squad, then puts them to non-captives.
Both of those seem too complicated to me. It would have to be a decent size script that was looping every few seconds. Then you would have to put that script on every unit in the game. It might cause lag.
I would suggest putting some heavy fog in the map. While fog restricts the player's view range, it also restricts the AI view range. The darkness level also reduces the AI view-range, so if the sky is red and the sun is rising, the AI won't be able to see quite so far. Make sure they don't have NVG's in their inventory, or they will pop em on and be able to see further. I would try a combination of different amounts of darkness and fog until you come up with something that looks good and has the effect on the AI you want.