Thanks Byungwoojun,
i'm a engineering student that currently preparing the thesis and your opinion is greatly appreciated.
i have understood that the messages's correlation must be handled at application level, as in your solution.
Maybe, for avoiding, the recursion to find the correct pid you can use a ProcessEventListener that persists the processsInstanceId of any process that is waiting for something in a table defined according to your needs, but this is only a solution that I thought at the time.
thanks again, if i will work in this area i will write here my solution.