Any way to detect what is disabling the screensaver?
Solution 1:
Run powercfg /requests
from an Admin Command Prompt. For example, mine printed:
DISPLAY:
[PROCESS] \Device\HarddiskVolume8\Games\Origin\Origin.exe
Playing video
SYSTEM:
[DRIVER] Realtek High Definition Audio (HDAUDIO\FUNC_01&VEN_10EC&DEV_0900&SUBSYS_10438560&REV_1000\4&9793a48&0&0001)
An audio stream is currently in use.
AWAYMODE:
None.
Which indicates that Origin was playing a video and this was preventing the screensaver from running.
Solution 2:
powercfg is built into windows and lets you control and view lots of power management settings.
powercfg -energy -trace
This will create a very detailed power management event log, energy-trace.etl. Open it with Event Viewer and filter log by Event Source: Kernel-Power, Include event ID: 62.
This should give you events that look like:
The application or service \Device\HarddiskVolume1\games\Steam\Steam.exe has overridden user power management settings with a code of 0x3.
The code may be different depending whether screensaver, monitor sleep, or another state transition was prevented.