When you call await, the lines following are run on a new thread from the thread pool, because they are really an async callback from the Awaitable code.
The calling thread is done when it calls the await code, and returns to the thread pool. it might ne more obvious if you looked at the code without awaits:
Task task = Task.Run(() =>
{
Console.WriteLine($"First...{Task.CurrentId}");
Task.Run(() =>
{
Console.WriteLine($"Second...{Task.CurrentId}");
}).ContinueWith(() =>
{
Console.WriteLine($"Third...{Task.CurrentId}");
});
}
where ContinueWith, runs its delegate as a new task.