I couldn't bother to read through all of this but there is some things you can do to make leveling up your troops a better experience:
XP is earned by the entire stack of any given unit e.g. recruits. Every damage they deal, every kill they produce is XP. If you immediately upgrade whatever recruit you can, then the amount of XP that stack will produce is also lessened unless you specifically only send the recruits to fight.
See with borrowed troops you keep all of them unupgraded until all those still alive can be upgraded.
Do not simulate the battles. Load in, tell the units you want to level to charge and leave the rest at the spawn.
People are all crazy about fians, but they don't realize that all ranged troops have the very same effect. Volume of fire leads to the AI initiating shieldwall on the final meters of approach which is a death sentence for all recruits and then causes a mass route.
Empire is pretty good for this since the horse archer is in the normal troop tree so you get recruits, archers and build more and more bucellaries.
Technically a horse archer army cannot be defeated, but the same can be said about the player. Yes you can horsearcher safely, drop volleys retreat and then repeat with a full quiver if that is your jam.
However once you build this archer/horse archer army the AI will be unable to stop you unless you take on insane odds. The game is effectively over once you have e.g. 200 archers and 50 horse archers. They will lose entire armies and you will not lose anything.
Edit: Give yourself and your settlements time for peace. If a city has lots of powerful units then that is because there is nobody there recruiting every 5s. If you recruit massively all you will get is recruits.
The "free" garrison you mention for the AI is not free at all. If you have an army and capture something you can move in and participants of the army will donate troops to the garrison. In fact if you have companions with parties they will also keep the garrison up.