Have you tried hg-git? I've been using it as my sole way of interacting (well, other than the web interface) with GitHub and I haven't run into any showstoppers.
My workaround is to also keep a local git mirror (git clone --mirror) and push through it:
~/repo$ hg push ~/repo.git
~/repo$ cd ~/repo.git
~/repo.git$ git push upstream
That's typically much faster than `hg push upstream`.edit: the "installing" section of http://hg-git.github.com/ confirms it.