ASP.NET MVC Session.IsNewSession problema con Google Chrome

Actualmente estoy trabajando en una lógica de sesión expirada para mi proyecto ASP.NET 3.5 MVC 2 para desconectar a un usuario y redirigirlo a la acción AccountController LogOn.

Tengo el siguiente atributo en todas mis acciones que se preocupan por el estado de la sesión, y este código funciona en IE 8, pero no en Firefox 4 o Google Chrome 10. El síntoma es cuando intento navegar a una vista representada por una acción con mi atributo [SessionExpireFilter], la propiedad ctx.Session.IsNewSession en el código siguiente se evalúa como "verdadero" cada vez, incluso si solo estoy segundos en mi sesión de 30 minutos.

public class SessionExpireFilterAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        HttpContext ctx = HttpContext.Current;

        // check if session is supported 
        if (ctx.Session != null && ctx.Session.IsNewSession)
        {
            // If it says it is a new session, but an existing cookie exists, then it must 
            // have timed out 
            string sessionCookie = ctx.Request.Headers["Cookie"];
            if ((null != sessionCookie) && (sessionCookie.IndexOf("ASP.NET_SessionId") >= 0))
            {
                FormsAuthentication.SignOut();
                ctx.Response.Redirect("~/Account/LogOn");
            }
        }

        base.OnActionExecuting(filterContext);
    }
} 

¿Hay alguna forma de averiguar por qué Chrome y Firefox se comportan de esta manera, pero IE no? Gracias por adelantado

EDIT: Esto no funciona en FF como creía originalmente. Me dirigen a mi acción LogOn inmediatamente después de iniciar sesión e intentar acceder a una acción con mi atributo SessionExpireFilter.

Respuestas a la pregunta(2)

Su respuesta a la pregunta