El problema era que me había mudado de mi entorno de desarrollo local con IIS5 a un servidor compartido con IIS7, IIS7 tiene una sintaxis diferente para registrar módulos http, por lo que mi módulo de sesión de NHibernate no se activaba, lo que provocó el comportamiento descrito originalmente.
Para solucionar este problema, agregué la sección de módulos en web.config en system.web a system.webServer, puede agregar la clave de validación validateIntegratedModeConfiguration="false" a la sección system.webServer que permitirá que su configuración tenga el módulo registrado en ambas secciones para que pueda tener la misma configuración para IIS5/IIS7.