Зачем контроллер? Просто выделяете в своём же контроллере 2 интерфейса: один для приёма прошивки, другой - для передачи её дальше. А можно сделать это и на одном интерфейсе (UART, ШИМ, etc.), если использовать его в симплексном режиме.
Контроллер принимает прошивку, сохраняет её себе и передаёт дальше. И обновляется затем. Лучше конечно - посредством бутлоадера. Чтобы не окирпичиться если что-то пойдёт не так.
PS: Кроме того - есть ещё топология "кольцо". Которую часто применяли раньше, но сейчас про неё почему-то все забыли. Тоже потребует только одного интерфейса. И на приём и на передачу дальше.
От ESP пустить кольцо на одном UART-е или ШИМ-е. И прошить все разом.