Some of my unit tests were failing because the stop was called recursively (the test was designed to generate exceptions).  Stop was called once from the callback thread (not allowing the thread to actually close) and once from the nosetests thread, where the stop was handled differently because it had already been closed.  Not waiting for the thread to actually close was causing some issues.

Since then I've added some checks to prevent this recursion which apparently had the side effect of no longer needing the join that you refer to.  I'll commit a change to remove it.