Cómo capturar errores asíncronos no controlados en Flutter con runZonedGuarded y PlatformDispatcher.instance.onError
FlutterError.onError solo ve los errores lanzados dentro de callbacks del framework. Los futuros sin esperar, los temporizadores, los streams y el código posterior a un await van a otro lugar. Aquí tienes qué manejador captura qué error, medido en Flutter 3.44.8, y la configuración de main() que los captura todos, también en web.