Fix child process spawning for virgo self upgrades

* in several places the obsolete -n was used instead of the current -o.

* have virgo exit on execve success (Unix never reaches there as the running process is overwritten, emulate that on windows by exiting the current (parent) process)