Yes, we could have a task to run in the background.

Yes, we could do a clear in `destroy()` but it would only be safe to do so if the hostname is not `unknown`.

There's nothing we can do if a thread dies without an unlock in `finally`, but that's true for any lock implementation.