async function init() {...}
document.currentScript.onload = init
привязав его тем самым к загрузке первого скрипта, то тогда для всей остальной "лапши" из <script> ... </script>
внутри html порядок выполнения не нарушится и изначально асинхронная init() выполнится синхронно со всеми остальными, или у этого решения есть какие-то неочевидные недостатки?