How does WaitForSeconds actually work behind the scenes?

So I know yield is used with IEnumerator to return elements one by one, but how does the code know to resume the IEnumerator after X seconds?

This is not presented as a definitive answer (as though the writer is entirely certain) but it looks and sounds about right to me. For all intents and purposes I would assume his explanation is accurate: http://twistedoakstudios.com/blog/Post83_coroutines-more-than-you-want-to-know