Improved the first interleaving test, to exercise isolation checks in the midst of interleaving.

Added a suspend / resume test which also verifies isolation.
Added a test case for join, which is exposing an actual bug.

Tracking LogicalConnection -> Physical Mapping isn't enough if there's
multiple threads using the same logical connection.

the end(); invocation on thread 2 will remove the mapping for thread 1.

The key in our Map<> needs to be a composite class which accounts for
the union of Thread (at least the id) and Logical Connection.

There will be a later commit to fix that. I may not have time to do it.