In addition to this I only think that a certain size of troops only should be able to face of against a maximum enemy size and this should depend on both terrain and colony size. The more developed a planet is the more difficult it should be to overwhelm a garrison force as the infrastructure will prevent it in it self.
A combat width mechanic based on tonnage (affected by stuff like terrain still) would be very interesting, It would also put more emphasis on having a more in-depth OOB since small formations would have an easier time joining/reinforcing the fight.
I also think that a counter to the attacker fortification problem is to use fortification levels below 1.
Consider using orbital drop pods in your transports - this option exists to protect your transports as it allows them to just dump all ground units at once, however you could make it so that every unit that is dropped this way starts at 0.5 fortification due to how disorganized the troops are in the initial landing, you could also have a commander skill for landing which makes these units start at higher fortification.
This does 2 things:
The defender is incentivized to put some of their units on frontline attack as now is the time where the attackers are at their most vulnerable and where most of their casualties will be.
The attacker is incentivized to not immediately charge in and wait for their troops to establish an actual "beachhead", getting their fortification up to at least 1 before pushing on.
This also means that there is an additional emphasis on STO protection. You could make it so that the fortification penalty does not apply when troops are unloaded from the transport bays normally. Ofc this means that the transports have to linger around STO range for much longer and troops might be coming in piece-meal.
So now defenders are encouraged to have more STO units in order to force an attacker to face the fortification penalty or for them weather the STO storm on their transports.
IMO right now planetary landings are just made too easy because of the drop pods, fast, armored/shielded transports almost completely nullify any benefit STOs give to a defense beyond preventing orbital bombardment. The initial landing should be the bloodiest part of the fight for the attacker and right now it isn't any deadlier than the rest of the fight.
Since this is a very defender-centric suggestion I think there should be some form of combat engineer capability for infantry that speeds up the rate of self-fortification which helps the attacker get over the initial drop phase quicker.