Adding a delay seems to work as well, I tried forcing a new frame, waiting until previous frame was complete, etc, and none of them worked. Anything under 500ms will still throw though.
await Future.delayed(const Duration(
milliseconds: 500));