The bug was introduced by cfd5aa41e847752cd98cde65515df7ce45ff9665.
The code monitors the test and generates a timeout test failure. There are two
layers of timeout, one for output and the other for a test running too long.
The test needs to generate some output within the first timeout period and the
second timeout detects if the test has run too long. The first timeout detects
a target has locked up. The second is for a test looping generating output.
With exe type tests the output is buffered in a separate thread.