Problem polegał na tym, że przeniosłem się z mojego lokalnego środowiska deweloperskiego z IIS5 na współdzielony serwer z IIS7, IIS7 ma inną składnię do rejestrowania modułów http, więc mój moduł sesji NHibernate nie uruchamiał się, co spowodowało pierwotnie opisane zachowanie.
Aby rozwiązać ten problem, dodałem sekcję modułów w web.config pod system.web do system.webServer, możesz dodać klucz walidacji validateIntegratedModeConfiguration="false" do sekcji system.webServer, co pozwoli Twojej konfiguracji zarejestrować moduł w obu sekcjach, dzięki czemu możesz mieć tę samą konfigurację dla IIS5/IIS7.