Prima di tutto ho letto una cosa:
C'è un sistema di notifica che invia lo stack di chiamata e lo stato della sessione...potrebbe essere utile?
Invia tramite cosa? Un indirizzo email? Questa condizione è valida nel tuo ambiente di sviluppo (configurato da te), ma sei sicuro che poi possa essere applicata nell'ambiente di esercizio? Cioè se il problema fosse proprio nella logica di invio degli errori che TENTA di inviare un messaggio (email deduco) senza riuscirci?

Cmq potresti impostare nel web.config la property <customErrors mode="On" />
in questo modo apparirebbero a video gli errori "CONCRETI" con trace e quant'altro, poi se hai la possibilità di incollare qui un esempio di quanto accade possiamo darti una mano in più.

"Inserire un Log" all'interno di un'app web, secondo il mio parere, è come pretendere che un ciclista gareggi portando dietro di se (su un secondo sellino) un'altra persona, ovviamente penso siano chiare le conseguenze, il ciclista ad un certo punto non ce la farà più. Il log è un sistema che và ben architettato, solitamente se la tua applicazione utilizza StoredProcedure (che sarebbero una cosa buona e giusta ) puoi implementare questo meccanismo direttamente al loro interno, su file te lo sconsiglio, oppure come dice Gabbone puoi intervenire ma creando un architettura ad uso e consumo tuo (tool per lo sviluppatore) di Log che utilizzi solo in quel frangente di Codice è solo PER RISOLVERE l'errore. Subito dopo devi provvedere ad eliminarla per "aumentare notevolmente" le performance (ricorda che stai lavorando ad un app web con un pooling di utenti di cui non conosci la grandezza, accedere ad un file di log, quindi ad uno stream su hd, non è un'operazione da sottovalutare in contesto web-application).