Well, there are a few other tools I didn't mention - and as I've said before, this isn't the definitive solution, because there's no such thing. It does, however, work for me with these tools. Though it doesn't do the tarpitting, Postfix's postscreen can effectively do the same job too. I'm actually experimenting with that at the moment, using it to drop connections based on RBLs before passing them on to the PostGray and then amavisd; there are an awful lot of ways to skin this particular cat.
With regard to the companies that don't play nicely with greylisting, the Postgrey package installs a list of the major offenders, who are automatically whitelisted, and you can of course tweak that yourself.