Delay as (inside) method

I know that I can only do delays as WaitForSecond, and methods as coroutines if there are WaitForSeconds code.
But What if you want something like this:

void Start()
{
    StartCoroutine(YourFunction());
    Debug.Log("3 ");
}
 
IEnumerator YourFunction()
{
    Debug.Log("1 ");
    yield return new WaitForSeconds(1.0f);
 
    Debug.Log("2 ");
    yield return new WaitForSeconds(1.0f);

}

Console:
1
2
3

?

IEnumerator Start()
{
yield return StartCoroutine(YourFunction());
Debug.Log("3 ");
}

At the end of the YourFunction you might set a flag like done=true, and wrap the “3” in an if(done);