why not hibernate?
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.)