Add timeout to disruptor shutdown

Mike, 

We need the ability to timeout the shutdown call on the disruptor so we can log the inflight state before killing the process. While adding that I stumbled over a bug with the graceful shutdown changes, which I've attempted to fix on this branch as well.

At least this one passes checkstyle before I committed it :)