Pause coroutine with infinite loop

I use infinite loop in coroutine to simulate code execution similar to FixedUpdate. Here example:

IEnumerator My_Coroutine()
{
  while (true)
  {
    Do_Something;
    yield return new WaitForFixedUpdate();
  }
}

But how i can pause this coroutine when i need to pause game (for example) with main menu call? StopCoroutine disable coroutine, not pause it. So what you can advise for this situation?

if (Input.GetKeyDown (KeyCode.Escape))
Time.timeScale = (Time.timeScale == 0) ? 1 : 0;

Try this