Executando verificação de segurança...
3

Particularmente vejo esse como sendo o jeito certo, acredito que sua visão de "gambiarra" pra isso seja mais pelo fato de que mudou o jeito como era feito antes.
Geralmente, a ideia de se usar um serviço singleton externo (event emitter do next/router) pra gerenciar um estado dentro do escopo da atualização (para o next, a rota faz parte do estado da aplicação) é meio que contra indicado, tendo como ressalva um redux da vida, que gerencia todo o estado relacionado a dados por exemplo, assim usar o valor retornado pelo hook de estado realmente faz mais sentido (to escrevendo pelo celular, fica complicado desenvolver mais a ideia kkkk).
Mas se quiser ainda usar num formato singleton com eventos, você pode simplesmente criar um provider que "ouve" as mudanças no estado pelo useEffect e disparar um evento pra algum event manager (o próprio window, por exemplo), mas não recomendo muito rsrs.

Carregando publicação patrocinada...
3

Gostei da sua argumentação! Dado a atual situação, de fato, muitas vezes o caminho para lidar com o problema é esse que você apontou, mas todo esse 'malabarismo' feito são consequências porque o next deixou de continuar com uma funcionalidade que anteriormente existia.