Disclaimer – I didn't read the posts above!
My system uses a model based on Clausewitz's 'TENSION AND REST' observation.
Basically – one side has the initiative and can start taking actions that force the other into a reactive posture. They will keep this initiative until they somehow lose it.
They might be stopped in their tracks by enemy reaction.
They might make a mistake and take and action that the enemy can safely ignore.
They might just run out of steam and need a rest and reorganize before again taking the initiative.
The basic mechanic I use is an 'ACTION TASK CHECK' [ATC] to take any action the failure of which places a 'LULL' that stops all action within <100m for that side.
when you have no units left not under a LULL = or none you wish to attempt an ATC with – you pass INITIATIVE to the other side.
When you don't have the INITIATIVE you can try to shoot back at enemy who fire – shoot at enemy who move – sometimes try to move – try to call for artillery etc.
It seems to work well and eats up time in a way IGOUO systems seem not to, because often you prefer to wait rather than rush things.
For example – if you need to suppress an MG nest before moving your infantry inside its LOS – then it might take a while to do so.