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.