I have a problem with %-based TU costs, based on the real-world -- look at what some pistol shooters can manage; they can pull off five or more shots in the time it would take an average shooter to pull off one.
It might work if there was a way to reduce the % cost of a specific weapon type (and possibly shot type, e.g. aimed, snap, burst, etc) as a soldier leveled up, allowing a soldier to pull off multiple times as many shots as they'd manage if they didn't have that ability. Although thinking about it, these are people who can shoot multiple silver dollars out of the air in a second or two....
Maybe in addition to being able to reduce the % cost of firing a weapon, the amount that any given soldier can increase a stat is randomized -- and hidden.
Especially if, after a certain amount (possibly also hidden) of increase, some sort of action (time in the gym, etc) which only has a percentage chance of increase is the only reasonable way to increase the stat -- say, time in combat only has a fraction of the chance that dedicated action has. Do you stick your soldier in the gym for a non-trivial amount of time, knowing it might not actually help, or do you give up on any real chance of their speed/strength/whatever increasing, and just hope you get lucky and they don't get shot?