Cause: When deleting the overcloud, the RHN unregistration step can hang if there is a problem with the node being deleted.
Consequence: The stack delete will wait until the unregister step times out, which makes the delete appear to be hung.
Fix: The unregistration step is, in Heat terminology, a "software deployment". Deployments wait for a signal from the node before moving out of the "in progress" state.
This signal can be manually sent to the stack. The first step is to determine the ID of the nested stack where the deployment exists:
heat resource-list -n5 overcloud | grep RHELUnregistrationDeployment
There is a column in that output titled "stack_name". This is the value to pass as <nested-stack-name> in the following command:
heat resource-signal <nested-stack-name> RHELUnregistrationDeployment
Result: The resource-signal command will allow Heat to move past the unregistration step and finish the delete.