In the last month or so our ARM instance has regularly become unresponsive when users try authenticating into the web portal. After entering their credentials, it just spins indefinitely but never actually logs the user in. A restart of the ARM service will resolve this but its becoming a common occurrence and is disrupting our users ability to use the ARM website. See screenshot below (I've stripped out my username from the screenshot)

I looked in one of the GrantMA logs and found some errors which may or may not be related. It looks like it may be something with IIS but I'm not certain. Is there anywhere else I should look when I see this behavior?
--BEGIN-OF-EXCEPTION------------------------------------------------------------
- System.NullReferenceException: Object reference not set to an instance of an object.
at pn.WebApi8Man.CookieHelper.GetGrantMaSettingsCookie(HttpRequestMessage request)
at pn.WebApi8Man.CookieHelper.GetSettingsCookieValue(HttpRequestMessage request, String key)
at pn.WebApi8Man.Controllers.Base.ApiControllerExtension.getCulture(ApiController controller, String culture)
at pn.WebApi8Man.Controllers.Base.ApiControllerExtension.GetUserInfo(ApiController controller)
at pn.WebApi8Man.Controllers.LanguageController.GetTypeIdDescriptors()
at lambda_method(Closure , Object , Object[] )
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.<GetExecutor>b__9(Object instance, Object[] methodParameters)
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.AuthenticationFilterResult.<ExecuteAsync>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.ExceptionFilterResult.<ExecuteAsync>d__0.MoveNext()
--END-OF-EXCEPTION--------------------------------------------------------------
[ 387|HC-DC2 |w3wp |9372.2| 90|IIS APPPOOL\ARM WebAPI AppPool|pn.WebApi8Man.Contr…cy.SessionController|200124|18:43:58.053|Info ] SessionController.Login(String username, String password, String domain, String timezone, String culture, String applicationId): Login
[ 388|HC-DC2 |w3wp |9372.2| 90|IIS APPPOOL\ARM WebAPI AppPool|CookieHelper |200124|18:43:58.054|Warning ] CookieHelper.GetSessionIdFromCookie(HttpRequestBase request): Sessioncookiename not set:GrantMaSession
[ 389|HC-DC2 |w3wp |9372.2| 91|IIS APPPOOL\ARM WebAPI AppPool|pn.WebApi8Man.Contr…cy.SessionController|200124|18:44:28.594|Info ] SessionController.Login(String username, String password, String domain, String timezone, String culture, String applicationId): Login
[ 390|HC-DC2 |w3wp |9372.2| 91|IIS APPPOOL\ARM WebAPI AppPool|CookieHelper |200124|18:44:28.594|Warning ] CookieHelper.GetSessionIdFromCookie(HttpRequestBase request): Sessioncookiename not set:GrantMaSession
[ 391|HC-DC2 |w3wp |9372.2|101|IIS APPPOOL\ARM WebAPI AppPool|pn.WebApi8Man.Contr…egacy.HomeController|200124|18:52:06.280|Info ] HomeController.MyAccountModel(): Calling MyAccountModel
[ 392|HC-DC2 |w3wp |9372.2|101|IIS APPPOOL\ARM WebAPI AppPool|pn.openService.Auto…ces.WebSessionToken]|200124|18:52:06.281|Debug ] AutoExpirySessionManager`1.TryGetToken(String sessionId, out TIdentity& token): Session not found: 4b40db7e-4063-44e8-8fdf-3e2c89ea94c6
[ 393|HC-DC2 |w3wp |9372.2|101|IIS APPPOOL\ARM WebAPI AppPool|MvcControllerExtension |200124|18:52:06.281|Warning ] MvcControllerExtension.GetWebSessionToken(Controller controller, ISessionManager`1 sessionManager): SessionManager session = null. Cookiesession: 4b40db7e-4063-44e8-8fdf-3e2c89ea94c6
[ 394|HC-DC2 |w3wp |9372.2|101|IIS APPPOOL\ARM WebAPI AppPool|pn.WebApi8Man.Contr…egacy.HomeController|200124|18:52:06.282|Warning ] HomeController.MyAccountModel(): Called MyAccountModel: Unauthorized, WebSessionToken null
[ 395|HC-DC2 |w3wp |9372.2|105|IIS APPPOOL\ARM WebAPI AppPool|pn.WebApi8Man.Contr…cy.SessionController|200124|18:52:15.133|Info ] SessionController.Login(String username, String password, String domain, String timezone, String culture, String applicationId): Login
[ 396|HC-DC2 |w3wp |9372.2| 99|IIS APPPOOL\ARM WebAPI AppPool|pn.WebApi8Man.Contr…cy.SessionController|200124|18:52:15.196|Info ] SessionController.Login(String username, String password, String domain, String timezone, String culture, String applicationId): Login