Ok, I think I have it licked. I just restared the site 3 or 4 times in the last 5 minutes, and haven't lost my login, even if I closed down the browser while the site was being recycled.
Seems like DotNetNuke auto-generates an encryption key for the cookies (and other things) by default, and I figured out a way to force it to use the same key each time it restarts. Hopefully, this will have fixed the issue.
Just as a note, I did delete all cookies from this machine as part of testing, not just the TSWB ones. I don't know if that makes a difference (it shouldn't, but who knows?).