The gripes about long delays that extend the game are legitimate, but the only ones that I think need to be addressed involve the batter constantly stepping out of the box.
I have a completely different take than your proposed reduction to a 23-man roster. I think MLB is going to eventually go in the opposite direction and expand the roster to 26-28 players. Teams will be allowed to dress a set number of players for each game (maybe 22-24), just like other sports. This will eliminate the issue you have today where a team carries players on its game day roster even though there isn't a chance in hell that they're ever going to play in the game (the other starting pitchers in the rotation, for example).
What's going to drive this is that the whole idea of a "starting pitcher" is going to disappear. Instead of having one pitcher go 5+ innings, baseball is going to adapt to a system where a "normal" game involves multiple pitchers tossing no more than three innings apiece. The pitcher who lasts even into the fourth or fifth inning will become the exception rather than the norm.
No one. Is suggesting a time clock, at least regarding the overall length of play; but merely to limit the down time between pitches...and personally, I’d like to see a foul ball with two srikes count as an out, three balls count as a walk, and any batter stepping both feet out of the box without asking for time be called out...