One option you can use is to create a "survey time" variable and use SetValue to update this variable as the survey travels from page to page. You would have to update the "survey time" variable on each page if you want this rule strictly applied. Or you do have the option to update it only on certain pages. That would be a decision you would need to make.
There are three methods I can see that would be helpful in some way in updating the "survey time" variable ...
1/ Using the system variable sys_ElapsedTime - Total amount of seconds respondent spent in the survey (sys_EndTime - sys_StartTime).
2/ Using the PageTime function. PageTime(StartPage, EndPage) returns a value (in seconds) between StartPage and EndPage. EndPage is optional. If no EndPage is supplied, PageTime returns the total time spent on StartPage. This would be useful if you are only looking at certain pages, not the whole survey.
3/ Adding all the page times together using the system variables sys_pagetime_#. This would also be useful if you are only looking at certain pages, not the whole survey. This is a good option if you are not looking at a range of pages like the PageTime function would (e.g. pages 1-5 / 10 / 15-16 / 20).
Once you have decided which method best suits you with time capture, you can save the time to a "survey time" variable using SetValue and then base you skips off the "survey time" variable (e.g. skip to disqualified outro if SurveyTime>240).