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)
    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