Draft: Sketch of fix to #3121
NOTE: This MR is a sketch that only works on Windows. I have no immediate plans of finishing it, as we are trying to move to Kubernetes instead.
What does this MR do?
Creates an integration test that reproduces #3121 (closed), then fixes the issue using Windows Job Objects.
Why was this MR needed?
Otherwise badly behaving CI processes can leave their grandchild processes around as zombies. In the shell runner.
What's the best way to test this MR?
There is an integration test that shows what it's about.