This confirms that the oProcess.WaitForExit() resolves the issue. I put this line in comment at first, removed the 7 second timeout and we were able to simulate the problem with the unzipping of a 30 MB file. Then, when I uncommented the oProcess.WaitForExit() line, the process was successfull.
If I ever need to allow a process to be executed in the background, I would still be able to lift a property to indicate to bypass the default. Then, in such circumstance, the WaitForExit() will not be executed. But, for now, for everything I need to execute, this default fits them well.