ContinueCom uma tarefa no thread principal

Perdoe-me se esta é uma pergunta simples; Eu não conseguia expressá-lo de maneira genérica o suficiente para procurar a resposta.

Considere este código:

var task = Task.Factory.StartNew(() => Whatever());  
task.ContinueWith(Callback, TaskScheduler.FromCurrentSynchronizationContext())

Como exatamente é determinado quando o método de retorno de chamada será executado?

Aguardará até que o thread principal esteja atualmente concluído, ou será chamado imediatamente após a conclusão da chamada assíncrona? E esse retorno de chamada será executado inteiramente antes que o segmento principal retorne ao que estava fazendo antes?

questionAnswers(1)

yourAnswerToTheQuestion