 
            If the point is to get rid of `GetProcessId`, maybe we can just remove the call entirely? Having the child process PID printed out doesn't seem very useful to me.
Possibly. I figured it would be easier to just not change that behaviour.
Regarding the other changes, maybe there's a question to whether we want these helpers to do more, or actually do less. Implicitly closing the handles might seem like a useful thing to do, but it might also not be.
I think the wait_child_process helper most important purpose is to add the failure count to the winetest failure count, and possibly print some specific message that the rest of the winetest infrastructure will expect (report parser, etc).
We could argue that the helper should instead be reduced to be made more flexible: the wait could be moved out of the helper and left up to individual test modules (which could use a different timeout strategy), and the exit code could have different meaning depending on the modules.
As I described in the commit message though, this does actually seem to be the more useful arrangement. There are currently 137 users of wait_child_process(); of these one doesn't get the process from CreateProcess() [actually it should be changed no matter what, because currently we're checking for child process failures twice], and only two need to use the handle after waiting for termination [at which point they can still use wait_child_process(), and the line count is even a wash]. Having a dedicated version of wait_child_process() for those two users doesn't even seem like an improvement to me.