задача то сводится к очереди и бесконечному циклу, в котором забираем следующий элемент только по условию, блин
условием может быть первый fullfilled Promise из вашего цикла, который будет вложенным, а вообще там и цепочку промисов можно рассмотреть. Не понятно - это синтезированная вами проблема или она и вправду существует.