Fix several subtle dispose cases

Revert join early-abandonment change.  This will be handled in another
upcoming change.