Is the task set to "Run only when the user is logged on" or "Run whether the user is logged on or not"? Your xml file does not have a <LogonType> attribute in it.
Does your get_status_of_services.bat need to access any network resources? That is, does it build some report file and save it to a file share on a different server? Or does it only access local resources?
If you're just monitoring (or restarting) services, you may want to consider running the task as the SYSTEM account instead of a domain account.
Your task is set to "run a bat file". I would recommend that you set it to run cmd.exe with the /c (Carries out the command specified by string and then terminates) switch. That should insure that cmd.exe terminates after the bat file completes. I have also found it useful for troubleshooting to capture stdout and stderr.
https://learn.microsoft.com/en-us/answers/questions/2141466/how-to-run-a-task-with-task-scheduler
I believe that your issue is related to the fact that you set both the "Recur every" and "Repeat task every" settings along with the duration of Indefinitely.
See the accepted answer in this question.
For a task that monitors services every 5 minutes, I would suggest these settings. I don't see any value in the 30 second randomization.
Also enable task history, and monitor Next run time, and Last run result.