That sounds like an absolutely horrible experience. I detest live programming exercises for the same reason. From both a candidate perspective and mine as a hiring manager now.
At my current place (and before as well) we give the candidates a 'take home test'. The problem is a bit larger than FizzBuzz, so that we can see how they would structure things, if they can write clean code, write tests etc. The 'take home' nature solves quite a few of the problems you mentioned, both for the candidate and us if you ask me. And even there you have to be careful that things don't get out of hand. Nobody good who currently has a job is going to spend any time on a take home test that the employer expects them to spend hours upon hours on over a short period of time.
Of course there are always managers that fear it's too easy to cheat but if you ask me, that's either never happened to us or if so, it was very clear after talking to the candidate in person about their code, that we wouldn't hire them anyway, so at best they cheated us out of some interview time.