I've always thought a good solution to this issue (as I've been led to understand it) would be to 1) fully automate all events and then 2) use level instances.
So for instance, take Chance. Let's say 500 people say they want to play the event. You have a system that sorts the players out into ten identical Chance levels and starts them all simultaneously. So now instead of 500 people in 1 level, you have 50 people in 10 levels. If it's important to have only one winner you combine the levels together between rounds as people are eliminated. If it isn't, even easier, the winner in each level gets a prize.