Pass information to downloads.download(), read it in downloads.onCreated

Can I pass information to downloads.download() that is then available to me in downloads.onCreated ?
For example, a string that says why the download was created, and what to do with it in downloads.onCreated

downloads.download() returns the ID of the download, which you could use to store this information within your extension (probably in-memory in an object or similar) and then look it up in the downloads.onCreated listener based on the ID of the created download (given the extension ID for the download is yours).

That’s how I originally wanted to solve this problem, but it doesn’t work.

Firefox 68.0.1 (64-Bit)
Linux Mint 19.1
Add-on code: passinformation.zip (5.3 KB)

Click on the browser action icon to create a text blob and download it to Pass_Information.txt in the standard downloads directory.

Console output:
browserAction_onClicked savedDownloadId null
downloads_onCreated savedDownloadId null
browser.downloads.download.then() savedDownloadId 11
downloads_onChanged savedDownloadId 11

Problem:
downloads.onCreated() is called before the downloads.download() Promise has been fulfilled.

Before you say “then just do whatever you want to do in downloads.onChanged() instead”:
With everything being asynchronous, can I really depend on downloads.onChanged() getting called after the downloads.download() Promise has been fulfilled?
In every possible situation, and in future versions of Firefox?