из, скажем, десятка работ с длительностью 1,2,3....9,10 […] при бОльшем количестве работ в области 9-10?
При таком раскладе результат будет неверным, половина результат будет верной, а другая половина будет копией первой.
Особенно не ясно когда и для чего вызывается второй раз swap(arr, i, size - 1);
Хотя бывает ещё одна засада, которая чаще с большими винтами, чем с маленькими флэшками: таблица разделов GPT → MBR. Не забывайте, что у MBR предел 2T.