O problema foi que eu mudei do meu ambiente de desenvolvimento local com IIS5 para um servidor compartilhado com IIS7, o IIS7 tem uma sintaxe diferente para registrar módulos http, então meu módulo de sessão NHibernate não estava disparando, o que causou o comportamento descrito originalmente.
Para corrigir esse problema, adicionei a seção de módulos no web.config em system.web para system.webServer, você pode adicionar a chave de validação validateIntegratedModeConfiguration="false" à seção system.webServer que permitirá que sua configuração tenha o módulo registrado em ambas as seções para que você possa ter a mesma configuração para IIS5/IIS7.