Это абсолютно нормальное поведение (
Стек вызова). Слушатели в диспетчере вызываются не одновременно, а
по очереди. Пока весь нижележащий стек слушателя не будет выполнен, управление не возвращается в диспетчер для вызова следующего слушателя. Если вам нужно выполнить обновление после всех слушателей, используйте отложенный вызов setTimout. (Как вариант)