I'm no Scott Woodgate, but I think I know a fair amount about Biztalk. However, it seems that I never recognized what the Listen shape actually does (you don't see this mentioned very often btw.). Turns out that this little shape can solve many of the problems we're currently having, mainly correlation issues, like situations where the message you are waiting for might never arrive, keeping your orchestration in a dehydrated state, waiting forever.

This shape works like a parallel branch, but with one major difference : Only one leg of the shape needs to complete for the orchestration to continue, while in a parallel branch all branches need to complete. Add it to your orchestration, add a receive shape, add a delay shape with a terminate on the other branch. If a message is not received in 1 day or whatever your delay is configured for, the orchestration will terminate. However, if a message is received, the orchestration will continue as normal and the termination won't occur.