Indeed it is challenging.
I tested with 2 CFDs an "Initiator" and an "Approval" CFD.
The Initiator CFD gets the call, records a message, saves the path to a Custom Parameter [Recording_Path], and then does a loop where it checks if the Approval CFD has changed a second Custom parameter...