Ohne es je gemacht zu haben, ich würde sagen so ist es schon zu spät. Da ist die Entscheidung sich schlafen zu legen schon gefallen.
Du musst vorher
mit SetThreadExecutionState(..) festlegen dass sich das System bitte nicht schlafen legt bis du es wieder erlaubst.