The executor service in Embedder.java is not shutdown() if doIgnoreFailureInView is set to true. This leads to a thread leak.
See the finally block in Embedder.java runStoriesAsPaths().
The shutdownExecutorService() is called only if generateReportsView() runs successfully without throwing an exception. However if doIgnoreFailureInView is set to false (which is by default) then generateReportsView() throws a RunningStoriesFailed RuntimeException.