This change does the following:
- If Ctrl-C is hit once, the parallel dotest.py runner will stop any further work from being started, but will wait for the existing tests in progress to complete.
- If Ctrl-C is hit a second time, the parallel dotest.py will kill the process trees for the child worker threads and the inferior dotest.py processes they spawned.
In both cases, the report infrastructure is left intact to report on whatever work was completed before it stopped. Thus, if 42 tests ran when the test was keyboard interrupted, the results for those 42 tests will be displayed.