2 comments about things you wrote Manu
1) One possibility would be to add a small random chance to miss any strike, even when perfectly positioned and prepared early. This would even enhance a bit the realism, as real players do random mistakes all the times. But for the user, it'd be hard to interpret and thus to understand if the error comes from trying too hard (eg: aiming too close to the lines) or just from a stupid mistake. Maybe I'll change my mind on this point after some feedback, though...
I calculated it'd require only a ~3% chance to miss per strike to lower from 7.5 rally length to 5.5, which would be really close of an average tough match on clay. But it could be hard to tune if I want this chance to not be completely random ; eg: making dependent on the strike consistency, and/or of the mental skills, and possibly of the surface or ball speed (so a good player would do a bit less stupid mistake when facing a lower skilled opponent).
----> Don't bring RNG in the game. At least not in multiplayer. We want precision, we want to be rewarded for our precision. It would be frustrating to hit shots perfectly and see them going out for no reason. It doesn't exist in real life btw : when you hit perfectly, it just goes in. It goes out because the player took too much risk in terms of target zone. UE should be caused by players, never by the engine!! That's what made TE so great, no script like that!
2) The tiredness: players in real life are never tired. The stamina concept doesn't exist, it should not exist in tennis video games. It does have an impact over the course of a tournament, but not during a match.