Here is another macro that you can try (it runs quite quickly)...
Code:
Sub Test()
  Dim LastRow As Long
  LastRow = Cells(Rows.Count, "A").End(xlUp).Row
  Range("B2:B" & LastRow) = Evaluate(Replace("IF(LEFT(A2:A#,3)=""ext"",C2:C#,A2:A#)", "#", LastRow))
End Sub