I suggest using one queued action, as long as there are not too many persons. If you know the correct sort order, you can perform all interface actions within this single queue action and don't need to take care of the correct FIFO order.
The queue should perform all actions in FIFO order, but I have seen that you can't always count on that (Could be that it is fixed in the meantime). To be sure, you could add a numbering to your queue objects and do a lookup as first action that checks if there are unexecuted actions with a lower number. If so, add the same question at the end of the queue. If not, perform the action.
That's not nice but might be a dirty workaround.
Thanks for the suggestion.
I was not sure about FIFO order and instead I created delayed send to interface. Entry is only delayed when the person B does not have ID.
Scheduled event picks up the entries marked for delayed transfer and do the sending again.