beentoo - 2012-04-23

Linux provides a simple way to schedule an restart event, for example:

rtcwake -m on -s <seconds-to-sleep>

This command avoids that rtcwake does the switching into another power state (mode -m stays on).
The power state is thus handled by the regular installed powermanagment tools, which is more stable especially on resume.

Just schedule the wake event, then do the regular shutdown/suspend.
Later, the real time clock will simply trigger the scheduled power event and the machine comes back up.