I think the only real option here is to code around the context of your site. Before calling _satellite.track(), make sure it exists. This could be done in various ways...
- Define your data layer on the page and move the _satellite.track() call into Launch.
- Create an interval that continuously checks for the _satellite object, only calling _satellite.track() when you're certain it exists on the page.
- Create a page load rule that notifies the page that _satellite has loaded and is ready to go. When that rule fires, use it to trigger your _satellite.track() call(s) by emitting a custom JS event that can be subscribed to with a simple document.addEventListener() in your page content. (Or, set a JS variable on the window that, when present/populated, tells the page that you're ready for the _satellite.track() calls to fire.)
You have a lot of options, but at the end of the day, it's just a timing challenge, and you'll have to decide what fits best in your environment.