A class which takes a thread dump after a specified time. Thread dumping can be cancelled by calling the
cancelDump method, which will also cause the thread to finish next time it awakens from sleep. The thread this
runs on will sleep until the specified duration has elapsed or this object has been notified to stop waiting. If it
is interrupted, it will immediately attempt to dump the thread logs.