Fixed a race in the tests because I was already 'bound' to the server port for the parent before all the children were started. Also moved the serving of requests in to a new thread so that the KeyboardException couldn't be caught by the server code accidentally.
Made the waiting for the separate thread actually work.
Now that the parent only starts listening after the children have started up, things are a bit more predicable (but it needs a bit longer)
Group the methods that are the same together.