Como capturar erros assíncronos não tratados no Flutter com runZonedGuarded e PlatformDispatcher.instance.onError
FlutterError.onError só enxerga erros lançados dentro de callbacks do framework. Futures sem await, timers, streams e o código depois de um await vão para outro lugar. Veja qual handler captura qual erro, medido no Flutter 3.44.8, e a configuração do main() que captura todos eles, inclusive na web.