Managed to find a minimal, 20 line test case for at least one of the ways git-annex was hanging with GHC's threaded runtime. Sent it off to haskell-cafe for analysis. [thread](http://thread.gmane.org/gmane.comp.lang.haskell.cafe/99334) Further managed to narrow the bug down to MissingH's use of logging code, that git-annex doesn't use. [bug report](http://bugs.debian.org/681621). So, I can at least get around this problem with a modified version of MissingH. Hopefully that was the only thing causing the hangs I was seeing!