Technically this is not a Jenkins problem.
But I think, this problem can potentially affect many users, so it would be nice to have it in documentation or at least as known issue here.
So we have windows agents connected to server via JNLP. To make agents connect to server after each restart / revert, I created a task in Windows scheduler to kick a bat, which starts agent.jar
The problem is, that Windows scheduler in Windows 2016 starts all the tasks in "below normal" priority.
So java process, executing agent.jar is run in "below normal" priority too.
And when we run our Java application on agent via Jenkins job or script, the application's process starts in "below normal" priority as well. Which increase execution time roughly twice, comparing to manual start on the same agent. Even when I go to agent and change Java application priority manually to "high" right after it is started, that does not help.
There is no "priority" option when windows scheduler creates tasks, but you can fix it by exporting task to XML, editing its "Priority" tag and importing it back (after deleting original task of course).
After setting priority to "normal" this way execution time returns to normal.