NodeList в современных браузерах поддерживает метод forEach, а для старых есть полифилл.
Если полифилл использовать почему-то нельзя или сложно, можно сконвертировать кнопки в массив сразу после того как вы их нашли, используя Array.from или более старый slice, например. Конструкция [].forEach.call...
не нужна. Но если очень хочется, замените ее хотя-бы на Array.prototype.forEach.call...
чтобы лишние массивы не создавать.
Перебирать все модалки при закрытии не нужно, можно закрыть текущую через closest().
Затемняющую подложку лучше не удалять из DOM, а скрывать стилями. Это быстрее, и меньше ресурсов потребляет.
backdoor - это черный ход. Не имеет никакого отношения к модальным окнам.
Чуток переписал, перебор элементов вообще не используется: