You don't always need to have a DSDT to get sleep working, but you may need to have one, if there are "fixes" needed to enable sleep.
When you have SleepEnabler and NullCPUPM, (in /E/E/...and rebuild the .mkext cache in /Extra), check what you see in the kernel log (via Console app) when you try to put machine to sleep. It may log something that's preventing sleep (or causing immediate wake-up), such as the internal USB connected webcam.
But ideally, you'll want to have native power management, and that'll most likely need DSDT edits anyway to get it working (HPET, LPC, etc sections) since you got a KP when not using NullCPUPM.