Instead of determining the downtime based on the conditions of the strats at the time of destruction, the general impact would be much "softer" when the speed of rebuilding was controlled by the condition of the factories, and rebuilding wasn't computed building per building for the factories.
Example: destroying an ammo bunker brings it down to 0%. When the ordnance factory is fully down the ammo bunker rebuilds at 100/180 %/min (so it would be up in 3 hours). Half way through (ammo bunker rebuild to 50%) the ammo-factory itself is rebuilt, increasing the rebuild-speed to 100/30 %/min. So the total down time is "just" 90min + 15min instead of the 180min today.
Then for the factories, instead of rebuilding all buildings in parallel, rebuild one by one. Assume everything is destroyed at the same time. This causes maximum rebuild time for everything being destroyed in the next 3 hours. If the rebuilt occurs building by building, in a way that half of the buildings would be up in 90 minutes, each building rebuilt has an immediate positive impact on the objects at the fields.
This would also be pretty interesting for towns. Instead of a magical moment 30 minutes after the lancs have dropped their load, the transition between white and color flagged would be much more fluent.
Worst-case time is reduced, but also best-case time occurs much more rarely.