The easy way round this is to put your guards in "CARELESS", then they won't react to fire (unless it hits them). You can always change their Behaviour to "SAFE" or greater when you want them to react.
so my solution usualy is scripted, putting the units in careless, detecting when they make contact with an enemy, and then apply setunitpos "up" to make them switch to their weapons (and stand).
I'm still not sure whether we're trying to delay a guard's response or keep him standing or a bit of both, but we do seem to be in heated agreement!
All I can add is that you can also 'keep him standing' by first doing SetBehaviour "SAFE" THEN SetUnitPos "UP" - the unit will stay in the "SAFE" stance until there's a threat (but, yes, it won't go back again). That seems sensible behaviour and, if it works from init commands (which, I concede, it might not), avoids monitoring scripts and triggers. It's an option.
The bit I haven't misunderstood, as I never claimed to understand it, is why we [might] want to prevent the unit in contact from going prone (unless it's a use-of-cover issue)? Anyway, j-man's happy to tinker so I'll shut up.