Если включить версию 7.4 , то сортировка проходит верно. Это поведение можно пронаблюдать и на https://sandbox.onlinephpfunctions.com/ вставьте код и переключите версии.
Для правильного вопроса надо знать половину ответа
У вас неверно формируется значение пользовательской функции для сортировки.
Она должна выдавать значение, меньшее нуля, если $a < $b, ноль, если $a == $b, большее нуля, если $a > $b.
У вас же она выдаёт 0 и для $a < $b и для $a == $b.
uasort($ar, static fn($a, $b) : int => $a[0] - $b[0]);
А то, что в разных версиях разный результат, может быть просто потому, что немного поменяли внутренний алгоритм usort/uasort.