No it's not. I put it there just so destroying wouldn't potentially wait for the Thread.sleep but that's generally 500ms to maybe 2000ms - but someone could theoretically inject a very long delay. That's the only edge case this doesn't gracefully handle (someone putting in a 10000ms delay for example) since we don't interrupt the threads (and we don't track them all) but I don't know that this edge case is a big concern.

Short answer - probably not worth the optimization.