Поменять стратегию на cache-first, сейчас у Вас network-first по этому и грузит каждый раз заново.
Что запрошен конкретный файл можно узнать из url запроса - простой if
А дальше смотрим, есть в кэше - отдаем из кэша, нет - идем в сеть
А умеет ли wifi сетевая ноутбука работать в режиме Access Point?
Что выводит ifconfig -a для интерфейса wifi карты?
Что выводит systemctl status hostapd?
Что выводит systemctl status dhcpd?
Что выводит systemctl status dnsmasq?
почему бы не использовать встроенный метод массива .sort вместо изобретения велосипеда?
на spider-monkey будет тот же merge-sort только написанный на плюсах и работающий быстрее
на v8 будет qsort, который в большинстве случаев работает с той же скоростью, что и merge-sort
Очевидно же, что в объекте lang="javascript">envParams.definition нет поля с ключом 'process.env.NODE_ENV'
Возможно стоило получить значение из process.env.NODE_ENV а не использовать его как ключ?
Впрочем, судя по ошибке и поля definition нет в envParams
Реализация очереди таким способом вполне себе логичная и правильная.
А вот к типизации я бы придрался, Ваши типы абсолютно бесполезны для вызывающего кода
Я бы еще добавил, что генераторы как таковые никогда для работы с асинхронным кодом не предназначались, просто они позволяли это делать, вот их и использовали до появления нативных async-await