I had my surface set to hibernate when running on battery power after 60 minutes. I'd put it to sleep, wait well over an hour, and find that it was still sleeping and hadn't hibernated. First I tried changing the wifi adapter setting under device manager->advanced tab. I had "Selective Suspend" to "Disable" from when I was trying to improve wifi performance (it didn't work). I switched that back to "Enable". Still wouldn't hibernate, but that could be because of the next thing I changed. So I don't know if this needs to be enabled, but if someone's having hibernation problems, they might want to try making sure it's enabled. The next thing I did was go into the default Win8 email client, settings->permissions. Changed the "Lock screen" (allow app to run in background and show status on lock screen) setting to Off. Surface now appears to be hibernating as it should. Only tried it twice, but so far so good. Luckily I don't really care about the email account I use in that client putting notifications on the lock screen or even getting updated "unread" counts until I open the app. So if anyone else has this problem, try changing these settings and see if it helps.