Fix Issue #304

This is currently a WIP.  Today I managed to get the major pieces of it in place.  I am not yet passing tests, but the server starts.
I could remove this, but we might also hang in the clean shutdown code, in which case we still want to kill the process eventually and not hold the server open forever.  This is a common pattern, but the time I've chosen is arbitrary.