Experimented a bit. getDraftID does indeed return the draft id after it is saved for the *first time*, however there is still a risk that the remote background service would pickup the draft from Gmail's servers before the *last* draft changes complete.
A kludge solution would be to build a finger print/hash of the email payload on the client side, send it to the remote background service as part of the API call (along with draft id), and have it compare the hash with the content of the getDraftID message before processing. But it's quite a kludge.
Is there a way to ensure that the *last* draft changes were successful before handing things off to the remote background service?
Thanks for taking the time on this.