Draft: testsuite: Teminate processes when the testsuite is interrupted
This isn't perfect, but at least catches some of the bad cases where we wouldn't clean up spawned processes when the testsuite was interupted.
It might be cleaner in future to use multiprocessing rather than threading library, which more directly allows you to spawn and kill jobs.