Ok. How about this:
Self correcting system. Based on a delegate % of missed blocks, you let in a random potential candidate for a block.
So a delegate drops down to 80% of reliability. In the future with a 20% chance you give their block to a delegate waiting in line.
That will motivate delegates to be 100% and also self correct if they are down for some reason.
That is a little better. But:
Problem 1: 80% reliability doesn't account for last 100 blocks missed of 100000 which would work out to 99.9% reliable but still bad.
Problem 2: You can't guarantee that the new delegates will be able to produce blocks so it could be bad to let in new delegates all the time.
It sounds to me like you just want the ability to punish delegates for missing blocks. Negative voting?!
Plus automatic voting actually.