Unregisters the object. This operation is required not to invoke blocking operations. Implementations which
require interaction with outside world must provide guarantees that any work is done behind the scenes and
the unregistration process looks as if it has already succeeded once this method returns.