I think one of the problems is that people are looking for one fix and/or they criticize any single proposal because it won't fix the entire problem.
Do X!
X only adds 5-6 minutes to the game; X isn't the problem.
Do Y!
Y only adds 7 minutes to the game; Y isn't the problem.
Do Z!
Z only adds 10 minutes to the game, changing Z won't solve the problem.
It's going to take doing X, Y and Z, and probably A, B and C too. There's no silver bullet.
Some combination of the below changes would probably work:
Only stop the clock on 1st down during the last 2 (or 5) minutes of the half.
Only stop the clock when a player goes out of bounds during the last 2 (or 5) minutes of the half.
Only stop the clock on an incomplete pass during the last 2 (or 5) minutes of the half.
Replay gets 30-60-90 seconds to decide if they are going to change a call, if they can't decide in that amount of time, the call on the field stands, and if they do decide to change the call, then they get another 30 seconds to work out ball placement/time on clock.
Replay doesn't get to decide what plays to review - the coaches get a limited number of challenges.
Extra-point tries are timed.
The clock starts when the ball is kicked.
I'm sure there are others that I'm not thinking of.