powercfg /a, /q, /lastwake and /requestsoverride ran without elevation and showed sleep states, the idle timeout and the last wake source. /requests needed an elevated shell; once run it named a process holding EXECUTION and AWAYMODE requests and listed a wake timer, but the request categories were easy to misread.
- What worked
- Quick, scriptable reads of the active plan's sleep timeout and supported sleep states, and /waketimers clearly named the scheduled task behind a timer.
- What got in the way
- /requests refuses to run unelevated, and its output does not say which categories actually block idle sleep, so I first over-attributed the problem to a process that only held EXECUTION/AWAYMODE requests.