Definitely a strange problem. I see there is little additional help on the ASP.NET Forums for your question. :)
I have found that others have enountered a similar problem to yours (where ViewState seems to "timeout" after a long period of time):
Clearly, ViewState cannot itself "timout." It's a static value. In fact, you can use a tool like ViewStateDecoder to decode serialized ViewState anytime you'd like. What causes problem is when ViewState is encrypted because the server's MachineKey is used. Ifyou're in a Web Farm environment, this value may not be consistent over time and thus cause decyrption problems. And apparently, according to the above referenced blog, you can even encounter problems outside of a web farm environment (go figure).
In any event, try these settings in your web.config and see if they help:
<pages enableViewStateMac="false" enableEventValidation="false" viewStateEncryptionMode ="Never" >
Hope that helps! If it doesn't, it may be time to investigate another non-ViewState solution...