Creo que el error está en el mal uso de las corrutinas, por porque no implementar un sistema de corrutinas para tu juego, no es algo dificil es una tonteria, y podrias hacer un sección de pausa.
Busca en internet como funcionan los IEnumerator, luego podrás crear un sistema de corrutinas con pausas integradas, hasta podrias indicarle a las corrutinas si quieres que se pausen o no.
private IEnumerator UpdateCorrutine(IEnumerator myCorrutine)
{
if(Game.IsPause) yield return null;
if(myCorrutine.MoveNext())
.....
}
Busca en internet como funcionan los IEnumerator, luego podrás crear un sistema de corrutinas con pausas integradas, hasta podrias indicarle a las corrutinas si quieres que se pausen o no.