There is a problem in the SSL module in Python 2.7.3/4 - something about it doesn't like IIS's SSL implementation is our guess.
If Python is rolled back to 2.7.2 then the bug goes away. This is a problem for all platforms pushing into IIS.
According to my buddy (who is a much better C / Python developer than I):
"The line that breaks it is when it sets the ssl options on the OpenSSL context. Before, it set SSL_OP_ALL, after version 2.7.3, they subtract the SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS option. According to the openSSL docs, this is a bug workaround option that is used to workaround broken SSL implementations."
The bug is confirmed here on the Mercurial bug tracker: http://bz.selenic.com/show_bug.cgi?id=3905
The related Python bug is here in the Python bug tracker: http://bugs.python.org/issue13885