Previously, it was possible for deployment signalling to cause other deployments to remain in an IN_PROGRESS state until stack timeout. This prevented deployment data from reacing overcloud nodes, thereby causing the overcloud deployment to time out and go into a FAILED state.
This issue was caused by legacy code paths, which update the metadata on every stack resource after any signal. These paths have now been disabled; as such, metadata is only updated using the resource-level locking mechanism. This mechanism correctly handles concurrent metadata updates.