Через потоки прокинуть, по очереди, ошибки ловя через stream.pipeline
Ну вот мне этот вариант тоже кажется более вменяемым
Но там вопрос был немного другой
Пару месяцев назад у меня просто уже был спор с этим господином по поводу того, что он предлагал все файлы закинуть в promise.all, а я утверждал, что это беда, и их надо копировать по одному (может не по одному, но точно не все разом)