I also like forcing player generals to make decisions . . . and one of those is how to assign troops to the various roles you want them to carry out.
As with many gamers my home-grown rules have three levels of expected troop morale. Superior, Veteran and Poor. Your favorite rules are probably similar although the particular descriptions might me different.
What is different about the way I handle them starts with the breakdown. If I have eight units of a type; 2 are Superior, 4 are Veteran and 2 are poor (if I have ten units; the breakdown is 3-4-3).
The ratio remains the same. If, after a battle, I feel that a unit deserves to move up to the next morale grade, fine, it does so . . . but another unit then has to move down to compensate. These morale changes need to be solidified prior to the next battle . . . because I always dice to see which units are involved in the fight.
By the way, while I have three grades of morale, their particular "morale number" for that day isn't decided until they have actual contact with the enemy and need to test something.
Veterans roll one "averaging die" (numbered 2,3,3,4,4,5) and their resulting roll is their morale number for that day. Superior troops roll two averaging dice and use the higher number; Poor troops also roll two and take the lower number. In general, better troops have higher numbers and poorer troops, lower . . . but sometimes it works out differently . . . and we never know until they are actually involved with the enemy.