In genere utilizzo stackoverflow per chiedere supporto riguardo a problemi di programmazione che non riesco a risolvere da solo, ma visto che lì non mi stanno cagando...
Il problema è che HttpContext.Current è "messed up" come si dice in inglese. Nell'immagine sotto si può vedere il suo stato.
http://i.stack.imgur.com/VzYGC.png 
La request proviene da una componente della Telerik (il report viewer), che in pratica sta cercando di procurarsi i dati per generare il report. In sostanza tu gli dai una classe e un metodo della classe e lui li utilizza per procurarsi i dati.
La request (sia lato client che server) se la gestisce lui, è incapsulata. Io posso vedere soltanto ciò che succede nella mia classe (che fornisce i dati al report viewer): la sessione è null, e questo è un male perché per portare a termine l'operazione devo accedere ai dati della sessione. La null reference della sessione è la prima cosa di cui mi sono accorto, ma poi mi sono accorto che in pratica HttpContext.Current ha una menomazione generale.
Qualche .NETaro ha un'idea su che cazzo fare? Non è detto che il problema sia risolvibile, ma forse è raggirabile con qualche hack...?
p.s.: sto Telerik ti risolve problemi per creartene altri.