Yeah, I originally explored isRunning() but mistakenly thought there might be concurrency issues. Now that I see there's a lock on isRunning() that isn't give up until stop() is finished, it looks like that would be fine to check. I'll change it.