all tests pass, tons of data races still at large
make shutdown() happen synchronously rather than async
delete a few tests that are no longer relevant
add comments to explain recent changes on shutdown