Comment 2 is valid, though I think the proposed solution conflates the two notions of "async" here (async on the request is not the same as async on the script tag). Perhaps we need a different solution, but the issue is real.
My application breaks due to timing issues b/c of script.async = "async". Consider the following timeline of events:
Insert x-domain script 1 via JQuery. A script tag gets added to the HTML head with async="async" and then removed. Regardless of whether the browser has actually loaded and parsed the script, the success callback is called.
Due to async="async" being set on the script tag at insertion time, we can't depend on the ajax success callback to tell us if the work is done, dependencies satisfied, etc. Correct me if I'm wrong, but due to async="async" being set on the script tag, there is no way to do this with the current JQuery 1.7.2.