How about some advance squad commands. For example telling the squad to:
Hold fire and run || engage enemies at will.
As far as i understand brothers in arms use a “cover slot” system:
every square meter or so is a “slot” that an AI can occupy. The game engine then determines whether that slot is considered cover or not. When a firing order is given, the AI will calculate a path towards their enemy, then every slot they come across, they will check whether it has direct line of sight to the enemy they were ordered to shoot. If it has line of sight, they stop and asume a firing stance.
The reason they need a second to respond to you directive is that they are calculating that firing position 
similarly, when they get shot at, they will look for a piece of cover that is not in line of sight of the opponent within a certain radius (access each point whether it is considered cover and whether it has line of sight of the enemy) if they cant find cover, they’ll shout that there is no cover
I’d already be happy if they weren’t ignoring my movement commands to shoot at enemy infantry from an open position just before being mowed down by an enemy tank.