Da die entsprechenden Funktionen in der Win32 API vorhanden sind, wirst Du Dir wohl mit dem
Win32::API-Modul helfen können. Für Dein spezifisches Problem scheinen mir die Funktion
SetThreadExecutionState um den Untätigkeitstimer der Systems zurückzusetzen und damit den Schlafmodus zu verhindern, sowie die Funktion
SetSystemPowerState um explizit den Schlafmodus zu aktivieren geeignet zu sein.
Für weitergehende Fragen bin ich aber der falsche Ansprechpartner, da ich seit Jahren nicht mehr unter Windows entwickle.
When C++ is your hammer, every problem looks like your thumb.