Единственное решение, которое я могу придумать, - это сделать какую-то ручную обработку тайм-аута сессии.Как то так:
void Application_BeginRequest(object sender, EventArgs e)
{
if(Session["LastAccessTime"] != null && (DateTime)Session["LastAccessTime"] < DateTime.Now.AddMinutes(-20))
Session.Abandon();
if(Request.RawUrl != "/MyHandler.ashx")
Session["LastAccessTime"] = DateTime.Now;
}