As attached in the jstack, AppServerStartup.stop() hangs in object.wait().
The problem is discovered while running v3/tests/embedded/basic/lifecycle in a fast multi-core machine. (Should be able to reproduce on the laptop, but you need to build v3/extras/embedded/all in order to run this test).
The test does actually does glassfish.start() followed by glassfish.stop() with no delay in between.
As a workaround, in the test, I tried putting some sleep before stop(), and it seems to solve the issue.
My guess is that the serverThread.run() in AppServerStartup misses the notify sent by speedy stop(), and hence it hangs in wait() forever.