If Time.timeScale is set to zero, coroutines suspended using WaitForSeconds will not be called.
Time.timeScale
WaitForSeconds
Replace WaitForSeconds with WaitForSecondsRealtime if you want to ignore scaled time.
WaitForSecondsRealtime
The coroutine still stops before completion.