Your battery might be shot or it might not be really sleeping. Either way you can try changing it to hibernate instead of sleep using a command line utility (pmset I think). Not nearly as convenient but if your battery is dying that quickly convenience is probably secondary.
You've probably already looked but console might actually tell you exactly what the culprit is. This has happened to me in the past a couple of times. Once with an app running in the background that I can't remember the name of that wouldn't even let the screensaver start, much less sleep. The other time was because of a kernel extension shitting the bed on a regular basis. If you're curious what non-Apple kexts you have installed you can see them like so:
kextstat | grep -v com.apple
They're at /Library/Extensions/ and you can disable them like this:
Even if it's not a kext it's good to keep tabs on kernel extensions you have installed. I hope that helps and apologies if you're already aware of all that.