I am a big supporter of a system as used in American Football
Each manager gets two challenges per game (one for each half). If the manager decides to challenge, play is up for review as soon as the manager throws in his challenge marker. However, to make it workable I believe play would have to be allowed to continue until the ball went dead through normal play.
Once play stops, the referee then crosses to a private video screen at the side of the field where he watches various replays. If the replays are inconclusive the original decision stands. If that is the case, the manager's challenge is refused. In American football, that side forfeits a time out. I suppose the forfeit in football could be a substitution.
Obviously if the challenge is good, the ref changes his call. There is no penalty to the manager but he has again used up his challenge.