thanks for @Iszi 's answer. I tested these two "ExecutionTimeLimit" options on my PC and get such conclusion. My PC's operating system is Windows 10 Professional.
From MSDN document, we can see these options are in some COM interfaces, these interface's implements requires desktop Windows version newer than or equal to Windows Vista.
The conclusion is as below (the timespans are in minutes):
+----------------------------+---------------------------------+-----------------+
| Trigger.ExecutionTimeLimit | TaskSettings.ExecutionTimeLimit | Realistic Limit |
+----------------------------+---------------------------------+-----------------+
| 4 | 3 | 4 |
| 1 | 3 | 1 |
| Not Set | 3 | 3 |
| 1 | Not Set | INFINITE |
+----------------------------|---------------------------------+-----------------+
BTW: the task interval is launch new task instance every 5 minutes, so they won't overlap in most test cases above.
From the result, just to say prematurely:
if both options are set, the option in Trigger will take effect, and the option in Settings is by-passed.
if only option in Settings is set, then it will take effect.
if only option in Trigger is set, (ITaskSetting::ExecutionTimeLimit is not set), then no option take effect, the task scheduler system will never try to terminate the task no matter how long time it runs.
So is seems that, if you want the system automatedly try to terminate the task running for too long time, you should at least enable the "ExecutionTimeLimit" option in Task Settings. if you also enable the option in a specific trigger of the task, the trigger's option will supersede that in task settings and take effect on tasks launched by this trigger.