Added to trunk.
Good day, than please like that and not my quick and dirty version

I was not aware of your action.

{$IFDEF MSWINDOWS}
type
EXECUTION_STATE = UINT32; //4 byte unsigned int
const
//Away mode should be used only by media-recording and media-distribution
//applications that must perform critical background processing on desktop
//computers while the computer appears to be sleeping.
ES_AWAYMODE_REQUIRED = UINT32($00000040); //Enables away mode. This value must be specified with ES_CONTINUOUS.
ES_SYSTEM_REQUIRED = UINT32($00000001); //Forces the system to be in the working state by resetting the system idle timer.
ES_DISPLAY_REQUIRED = UINT32($00000002); //Forces the display to be on by resetting the display idle timer.
ES_CONTINUOUS = UINT32($80000000);
//If the function succeeds, the return value is the previous thread execution state.
//If the function fails, the return value is NULL.
//Minimum requirements: Windows XP
function SetThreadExecutionState(esFlags: EXECUTION_STATE): EXECUTION_STATE; stdcall; external 'kernel32.dll';
{$ENDIF}
That is the more better and full variant

so timer isn't needed
I do not know to what document you refer, it is just wrong.
Not believe?
Make a test app that set value just once and do nothing, depending on your power configuration your system will go into power saving mode.