Ideally we want to wait until all components have loaded before submitting page load event so we can include as much tracking data as possible in that first call, but we cannot risk loose the page view event due to fast navigation. Is it feasible to send a page view event immediately, and then do a later call with additional data using Launch? Can these events be merged somehow?
It seems you are running into some of the common issues with ASYNC deployment. We've seen some creative work arounds to these problems from some of our customers, however i'm not a developer so I'm not much help here.
From the Adobe perspective, there isn't a way to send 2 different beacons and having them merged later on the backend.