Section 2.7 Run States:
I don't think we need additional states. When a component has stop() invoked, the component immediately moves to the stopping state. In most cases this is followed by a call to doStop, which can throw a WaitingException. I think you can move jetty to gradual shutdown, throw an WaitingException, and when all threads have exited you would call context.stop();
The one issues is doStop is not called until all dependent services have stopped, which may not be what you want.
Anyway, I believe that we have enough states, but we may need to use them more effectively.
-dain
