The new version of Flow is fairly particular about Promise.all. I had to restructure this code to use async IIFEs.
Separating this out into its own diff because it required adding some exports in a different file.
NOTE: CI will fail on this diff. I considered the possibility of fixing Flow errors BEFORE upgrading Flow, but it wasn't possible... in some cases, the fixes to support the new version of Flow caused errors in the old version. I could have hidden these type errors with $FlowFixMe lines and then later revert those, but that seemed like too much busy work.
Depends on D10036