Hi, the choice between sync and async depends on whether or not you want to allow revisions to be processed while your interaction is running.
If you move it to async and there is a revision while your fulfillment order is pending, there will be a new EBM request sent.
I guess you do not want to allow that.
Then you should leave it as SYNC and simply allow a COMPONENT-UPDATE milestone, which in your case would be the event telling you that the message cannot be processed but will be processed eventually. (I understand the message would be queued in AIA until the account becomes available and billing then completes normally.)
The downside is that during that time, if revisions are received, they will be queued and will not start processing.