Considering that I recently ran home with a rapidly flattening battery - precisely so that I would not lost my session - I am very pleased to find this here :D
Have you tried an SMC reset? That's the low-level whatnot that controls the battery, and sometimes it can get confused.
(terminology: 'sleep' is suspend to RAM, requires battery to keep active. 'hibernate' is suspend to disk, no battery required after RAM copied to HD—obviously requires enough HD space to run the persistence.)