One option would be to set a static machineKey in web.config and see if that solves the problem. If your app pool is restarting regularly for some reason, and the autogenerated key can't be persisted, then you'll get this behavior because ASP.Net won't be able to decrypt the ticket with a new key.
You can see an example of a statically generated machine key here.