AbstractSlingRepositoryManager initializes the repository asynchronously in a separate thread. This makes it difficult for an implementing subclass to detect when initialization fails. An implementing class calls start(), which returns almost immediately, while the repository is starting up asynchronously. There is no way to detect that start() was successful.
There should be a callback method that can be overwritten by the implementing class. The method would be called when initialization fails, before stop() is finally called.