There should be a way to tweak the code so that we don't need to wait for any JRuby instances to be initialized before we open the Jetty port.
My belief is that the only reason we have to do this today is because we need to read certain settings from puppet.conf before we can initialize the web server, so if we can just identify exactly what that list of settings is, we should decide whether it would be worthwhile to simply stop supporting those in puppet.conf.
If we can do that, then Jetty could go ahead and start up and requests could start coming in. The requests might block on the 'borrow' function when they need a JRuby instance to handle them, but that seems like it'd still be a much, much better UX than having connections just fail. We could reduce our perceived startup time from 30 seconds plus to something more like 5 seconds, potentially.
My expectation is that the only settings we're really relying on right now are SSL/CA-related ones, and we've already got it on the roadmap that we are going to stop supporting those from puppet.conf, so hopefully this should be doable.