What exactly would happen in these race conditions? Just exceptional cases? I mean, if your eventual aim is to free the current view of the data (free all the process's memory), typical race conditions won't matter in the end. If there's exceptions you can just add a vectored exception handler to prevent crashing.
Or, you can just spawn the process yourself with the CreateProcess function and CREATE_SUSPEND flag, as I think Nebbet intended.