Перед сортировкой дистанции посчитать предварительно. И внутренний запуск каждого cycleTrough через setTimeout делать, чтобы движок js немного "расслабился", соответственно, нужен будет колбэк для bestRun.
В принципе, где-то так и есть. В глубине конвейера несколько разных MOV для разных комбинаций типов аргументов, и все одной длины, потому что аппаратно легче работать с избыточной длиной и обходиться без дополнительного накручивания счетчика инструкции только потому, что команда не влезает.
Если это такой блок, который без точного указания на своё место не встаёт, то прописывать придётся. В обычном случае место определяется браузером самостоятельно, просто нужно учитывать правила расчёта.