A network call that ran only inside a step with a deadline was reused in a step without one, and it has no timeout of its own. When the remote service hangs, the second step hangs with it.
Give every outbound call its own timeout. A caller's deadline does not travel when the call is reused.
Check what a reused helper relied on. Its old callers' guards stay behind.
Check what a reused helper relied on. Its old callers' guards stay behind.