Hmm, I had a similar issue, this seems to have been stealth-changed by the asp.net team, since I haven't seen anything regarding it. A half-dozen 2.0 apps that stubbornly refuse to persist their users later and I think I found it. :)
It used to be that when you persisted the cookie (in 1.1), the cookie would have an expiration date of 50 years, ignoring whatever was put in the timeout value in the web.config (or so I believe is how it worked or didn't work as it were).
Now it only uses the timeout value, and the timeout value defaults to 30 minutes. This is what makes it difficult to test, since you're likely to close all your browser windows and/or reboot since we know that it breaks any connection to what we (people more used to 1.1) assume is a session problem, and if reopening the browser still logs us in, we assume the issue is fixed. Of course 30 minutes go by and then we're logged out again.
Regardless, the fix seems simple, just change the timeout value in your web.config. I set mine to 20160 for a 14 day sliding expiration after they last used the site.
<authentication mode="Forms" >
<forms
name=".ASPXAUTH"
loginUrl="login.aspx"
defaultUrl="default.aspx"
protection="All"
timeout="20160"
path="/"
requireSSL="false"
slidingExpiration="true"
cookieless="UseDeviceProfile" domain=""
enableCrossAppRedirects="false">
<credentials passwordFormat="SHA1" />
</forms>
</authentication>
I really think this should be part of the web admin, unless there is some hidden file somewhere that points this out, I would guess a lot of people have non-functioning persisting cookies.
Happy Holidays!