Many ANR instances during SCREEN_OFF due to SaveGame?

Can someone advise how to avoid having the below ANR reports in Google Play Console:
Broadcast of Intent { act=android.intent.action.SCREEN_OFF flg=0x50000010 launchParam=MultiScreenLaunchParams { mDisplayId=0 mFlags=0 } (has extras) }

"main" prio=5 tid=1 Native | group="main" sCount=1 dsCount=0 obj=0x761cd7a0 self=0xec405400 | sysTid=516 nice=0 cgrp=default sched=0/0 handle=0xef977534 | state=S schedstat=( 30085039666 3460567380 28197 ) utm=2577 stm=431 core=4 HZ=100 | stack=0xff2a5000-0xff2a7000 stackSize=8MB | held mutexes= native: pc 00000000000174b8 /system/lib/ (syscall+28) native: pc 0000000000046fab /system/lib/ (_ZL24__pthread_cond_timedwaitP23pthread_cond_internal_tP15pthread_mutex_tbPK8timespec+102) native: pc 00000000001de538 /data/app/ (???) at (Native method) at ( at android.os.Handler.handleCallback ( at android.os.Handler.dispatchMessage ( at android.os.Looper.loop ( at ( at java.lang.reflect.Method.invoke! (Native method) at$ ( at (

I am not sure what causes these, I can only assume that they might be caused by a lengthy save game operation which I execute inside my Game.Stopped event handler:
public void SaveGame() { if (g != null && g.IsRunning) { try { CreateDirectoryForFilePath(_savedGameFilePath); if (g.GameType != 0) { using (var fs = File.Open(_savedGameFilePath, FileMode.Create)) { g.SaveGame(fs, saveDebugInfo: true); } } else { File.Copy(_newGameFilePath, _savedGameFilePath, true); } } catch (Exception e) { System.Diagnostics.Debug.WriteLine(string.Format("Cannot save game\n{0}", e.Message)); } } }
Can someone confirm what is the cause and/or suggest a workaround? I think that calling SaveGame on a separate thread is probably not the right thing to do given that my application is about to be paused, right? Any help is greatly appreciated!