What I've been doing with these malcontents this year:
* After about the third gripe, I'll say to him, "42 (or whatever his number is), I've heard enough." Combine that with "the look" you give your kids when you really mean what you are saying.
So far, that's shut them down. But the next gripe would earn them a T (simple T, not flagrant). I'm not sure I'd toss a player for telling me I suck. Maybe I need to re-evaluate that
Definitely don't let it go on very long at all.