A huge complaint of mine was always redeployside when you were about to take a cap and 400 people show up to shut you down. It was kind of a two part problem though that I'm sure could have been addressed in more ways that one.
The biggest issue was the huge void areas of land between bases, once a fight was stomped out the battle lost all momentum and getting back to that base was a huge issue. Most people just redeployed to another fight turning it into a zerg battle.
I thought the construction update was going to fix this, but I was wrong. I imagined it would delivery generic, bare-bones bases in-between major base hubs that kept the fight flowing. This way you only got pushed back a few hundred meters and the fight would rage on and be more spread out. Instead it was nothing like that at all, and bases were always built at inaccessible locations every time to make them more defensible. Had they made the base locations static and placed 2 or 3 between each base on the lattice line then that would have really helped the flow of battle. I'm sure there are other ideas/ways to have fixed this, that's just my idea. They could have even made it where once a base got to a certain level it could create it's own lattice line to a non-lattice connected hex forcing the enemy to target said base to shut it down.
Nothing was worse than the front lines being at the bases that were almost impossible to take (Quartz Ridge, Indar Excavation, Indar comm array, etc) spend 10 minutes trying to take it only to get fully wiped out by a re-deploy zerg and then have no other battle on the map. Rather than waiting 10 mins for another fight to kick up I'd usually just log out.
The Esamir bases are still rage inducing, I'm still shocked they haven't raised the height of the walls after all these years. I ended up uninstalling yesterday after a 2 hour fight where it was just 20 or so tanks farming the fish bowl and no way to push back. It was the only fight on the map and you couldn't do anything as an infantry player without getting shelled every few seconds.
As for two factions shitting all over one they could have forced some kind of attrition on those front lines. Say if no battle occured between two factions after a certain time limit all hexes on that front line would go neutral. How bad the single faction was getting shit on could have affected how many players were forced to move to those neutral hexes in order to take them back.
I think this also would have helped with the more epic fights.