+1 for this issue.
If I do:
Powercfg -waketimers
I do not see any of the programs I have scheduled to record listed as events to wake the system. So, it does not wake and does not record.
I think a better way (he said treading lightly) might be, to set an event to record the programs and make that wakeable.
That way it doesn't matter under what circumstances sleep is entered, the wake will trigger.
I believe this is what MS does for it's Media Center - below is the scheduled task to do it.
The TV service just sets this to the next program time, once the previous one has done it's thing.
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.3" xmlns="
http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Source>Microsoft Corporation</Source>
<Date>1982-01-15T16:30:00-08:00</Date>
<Version>1.2</Version>
<URI>Microsoft\Windows\Media Center\StartRecording</URI>
</RegistrationInfo>
<Triggers />
<Principals>
<Principal id="NetworkService">
<UserId>S-1-5-20</UserId>
<RunLevel>LeastPrivilege</RunLevel>
</Principal>
</Principals>
<Settings>
<MultipleInstancesPolicy>Parallel</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>true</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<Duration>PT10M</Duration>
<WaitTimeout>PT1H</WaitTimeout>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
<UseUnifiedSchedulingEngine>true</UseUnifiedSchedulingEngine>
<WakeToRun>true</WakeToRun>
<ExecutionTimeLimit>PT72H</ExecutionTimeLimit>
<Priority>7</Priority>
</Settings>
<Actions Context="NetworkService">
<Exec>
<Command>%SystemRoot%\ehome\ehrec</Command>
<Arguments>/StartRecording</Arguments>
</Exec>
</Actions>
</Task>
My system is put to sleep via Lights-Out which is a server side program developed for Server Essentials 2012 r2 and other home server flavours.