A way to choose to use heroes in war
What if the Hero upgrades could be done as normal with builders AND/OR the upgrade could be done in the Laboratory?
If an upgrade is done with a builder the hero would not be available as per the normal.
If the upgrade is done in the Lab the hero would be available for war but your other Lab upgrades would have to wait, and you can only upgrade 1 hero at a time with this method.
I think this method could simplify the coding required. Since the Lab can only do one upgrade at a time there would be a player sacrifice to delay other upgrades for hero upgrades and still keep a hero in war.
Since Lab upgrades take the most time of anything else in the game this could be a sacrifice for Hero war use that people may be willing to trade.