Linq Lambda x desempenho da sintaxe de consulta

eu vi hoje uma sintaxe de consulta linq no meu projeto, que estava contandoList itens em condições específicas desta maneira:

int temp =  (from A in pTasks 
             where A.StatusID == (int)BusinessRule.TaskStatus.Pending     
             select A).ToList().Count();

Eu pensei em refatorá-lo, escrevendo-o como usandoCount() para tornar mais legível e o que eu pensei que seria desempenho também é bom, então eu escrevi:

int UnassignedCount = pTasks.Count(x => x.StatusID == (int)BusinessRule.TaskStatus.Pending);

Mas quando eu chequei colocandoStopWatch o tempo decorrido pela expressão lambda é sempre mais do que a sinaxia da consulta:

Stopwatch s = new Stopwatch();
s.Start();
int UnassignedCount = pTasks.Count(x => x.StatusID == (int)BusinessRule.TaskStatus.Pending);
s.Stop();
Stopwatch s2 = new Stopwatch();
s2.Start();
int temp =  (from A in pTasks 
             where A.StatusID == (int)BusinessRule.TaskStatus.Pending
             select A).ToList().Count();
s2.Stop();

Alguém pode explicar por que é assim?

questionAnswers(2)

yourAnswerToTheQuestion