When you call WrapperManager.stop() or WrapperManager.restart() from within the JVM while the start() method has not yet returned, causes the JVM to die immediately and the native code to launch a new JVM. The WrapperListener.stop() method is never called. This happens in both Windows and Unix.
This does not happen when the stop or restart is called externally (i.e. "StopTestWrapper-NT.bat" or "sh.script.in stop"/"sh.script.in restart")