Using hg-fast-export I was able to get this to work. This also had a problem (maybe the same as Github), because Mercurial allows branch names with a leading "/" and Git doesn't. You need to specify a branch mapping file, I used one with the contents like this:
"/raw_recc-added-121-and-11751-aspect-rati-1382109783386"="raw_recc-added-121-and-11751-aspect-rati-1382109783386"
"/added-1792-resolution-1390499711758"="added-1792-resolution-1390499711758"
Then it worked fine. In theory it has preserved the hg hashes as I chose the option to "Annotate commits with the hg hash as git notes in the hg namespace". Haven't tested thoroughly, but you can get what look like useful mappings of Git commits to hg hashes via: git notes --ref hg list
I then did: git push --all
This may not strictly be needed, but I don't understand the branch model of Mercurial so wanted to save all of them. There are 274 open branches???
Anyway, the result is here:
https://github.com/reticulatedpines/magiclantern/tree/unifiedOverall, pretty easy, and the results look sensible to me. But I'm not qualified to test hg tools against that repo using hg-git. If anyone competent is interested in testing that, let me know if you run into any problems. It does show that you can take all the history out at least. The same procedure should work for moving from hg to git while remaining on Bitbucket, too.
I've also found a script for moving Bitbucket issues to Github, I'm trying that out.