Obviously this does not apply directly within a binding, but the general approach may give you some hints.
The critical thing you need to determine is if you always get a pair of data chunks. If so, you can build a trap that is set when one arrives and is released when the second arrives.
If there may or may not be a second payload, you will have to implement a timeout to escape prematurely. You might want to do that anyway, as a failsafe in error situations.