I don't know how Flutter gotrue client works, but on the javascript client there is an open issue on jwt expiring when mobile devices go into sleep.
Basically does not matter what your jwt expire time is, it is a matter of how much is left. If you close your device when the jwt is 1 minute from expiring (say you used the app for 59 minutes since signin) and come back two minutes later the jwt will have expired and when the app starts running again, on the next supabase call you will get an expired jwt error.
Because the app is not restarting, just coming back from sleep, the code does not know any time has passed so it is an ungraceful error, unless your code handles jwt errors...
https://github.com/supabase/supabase/issues/6464