what about the 3 games i linked where i only had 9 dressed, that was just back luck once a week for 3 straight weeks?
If you have a huge blowout and the trainee is in a position where he's extremely underskilled compared to the alternatives, it's quite possible to lose a couple of minutes here or there. That's what happened in two of those games you reference. The other game against the Snackers, Parot fouled out and so obviously the coach was required to substitute him.
In terms of why 48 minutes are not guaranteed, it's simply always been that way. The BBs in the past have consistently stated that the engine was not designed to guarantee a player 48 minutes, though the community has sort of come up with the workarounds to give the best case possible (I would, ideally, use 8 players instead of 9 to help counter the possibility of garbage time being invoked while a different starter was on the FT line). In the long run, though, missing a minute or two here or there is inconsequential compared to time lost to injuries, and obsessing over every last minute is counterproductive (and this is coming from someone who has done that as well).
There have been several different suggestions about substitution patterns since as long as I've been in BB and I'm sure that it goes further back than that, even. My personal windmill was that I hated that if I had two high stamina players at the same position of roughly equal quality, there would always be a 40+ minute split for the starter and less than 8 for the backup, with no way to force a rotation even in the 32-16 range, let alone more balanced than that. I feel your pain here. It's just one of the things that you just learn to accept as BB being what BB is, and doing your best to work around that.