Code Keeper: для задачи топикстартера async не подходит совсем, особенно, если он начнет разносить модули по разным chilprocces.
livemirsi: вам только если строить очередь выполнения, смотрите как реализован тот же selenium-webdriver для node.js, там есть queueTasks. Задачи выполняются из этой очереди последовательно (очередь можно создать через промисс-цепочки), но элементом очереди не обязательно должен быть один промис, можно использовать Promise.all([]) для случаев параллельного выполнения.
В v4 такая же проблема? Вообще вам npm не поможет, т.к. относительный путь "./lib говорит вам о локальном модуле. Вы либо симлинк отломали, либо что-то не до конца развернули (м.б. там хранится git submodule).