Using IEnumerator

private IEnumerator RotatePingPong()
{
while (!DelayFinished().Current)
{
yield return null;
}

...some actions
        }

private IEnumerator<bool> DelayFinished()
        {
            float delay = 0;

            while (delay < FirstInvokeDelayTime)
            {
                delay += Time.deltaTime;
                yield return false;
            }

            yield return true;
        }

How can I use the return type bool of the IEnumerator?

P.S. Don’t explain how to use StartCoroutine I know how to use it I am curious how this is supposed to work.

Make it simple if you want to get a value from a coroutine, use a delegate (since you cannot use ref):

     private IEnumerator DelayFinished( System.Action<bool> action)
     {
         float delay = 0;

         while (delay < FirstInvokeDelayTime)
         {
             delay += Time.deltaTime;
             action(false);
             yield return null;
         }
        action(true);
     }

then you call like this for instance:

  bool result = false;
  StartCoroutine(DelayFinished(value => result = value));

see if that does what you expect