Reviewing your steps I don't see anything wrong with your approach. While we have a "Wait" shape in a flow, it's only designed to be dependent upon Datetime, elapsed time, or the status/resolution of another case so I don't necessarily think that would work for what you've described.
Are you experiencing any problems with the approach you've highlighted?
Thank you for response. Only problem is that it is a bit complicated. I thought, maybe there is more convenient way of doing such things like message listening inside process. We are trying to minimize development of custom solutions.
Thank you for your response. I can't think of much else off at the moment. Potentially, depending on feasibility, taking the agent out of the process and running resume flow directly from the service activity. I suspect that the feasibility of that would depend upon how many messages are coming in, how frequently they arrive, and how much processing takes place surrounding the resume flow.
Perhaps someone else might have other thoughts in terms of simplifying the process.