Make join abandon inflight promises when ended

- [x] Unit test

Fix #57