The solution to that situation is to not accept so quickly...
That sounds a bit simplistic, but consider that not everyone gets to see the question right when it's posted. There will be answers that come a bit later. Also, questions with accepted answers show up with a green box in the question list, immediately signalling "case closed" even before the question is opened. That may discourage others from adding new answers. (It doesn't discourage everyone, of course, but it might.) Similar arguments are mentioned here on meta.SE, too, so I guess I'm not the only one.
Waiting a while may increase your chances of getting better answers, and decrease the likelihood of having to feel like stealing candy from a child when you have to take the check mark away from someone.
In the particular question you referred to, the first answer came in about 8 minutes, the second about 9 minutes later. That's quite quick, in my humble opinion. Perhaps there would have been time to sit on the check mark and revisit the question after a coffee break or such?
For self-answers, there's a mandatory 48 hour waiting period before accepting your own answer. I'm not sure if it would be bad to have a mandatory waiting period for all accepts, though of course not on that scale. (Sure, that might make it even harder to get drive-by users to accept any answers, but I'm just thinking out loud here.)