Add isDrained() and fix listener bus stop() test (rely on semaphore instead).