We were working on a project where there was used the ajax pattern of PageMethods in order to call to the server.
We experienced a weird behavior where calling the operation marked as WebMethod (required to be called as part of the PageMethods) caused weird occurrences in the Session_End global event handler.
After dwelling into it, we found that the issue was solved once we enabled the session state in the WebMethod attribute.
I thought it might be worth sharing.