Thread to wątek, a więc poleceniem Thread.Start tworzysz nowy wątek.
Taski to są zadania, one są umieszczane na ThreadPoolu, czyli na specjalnych wątkach roboczych które są zarządzanie przez odpowiednie klasy.
Samo stworzenie wątku jest dość drogie a więc jakbyśmy stworzyli każdy osobny wątek dla użytkownika który połączy się z serwerem to byśmy marnowali niepotrzebnie zasoby w postaci mocy obliczeniowej.
Jeszcze warto wspomnieć że te wątki byłyby jeszcze wstrzymywane gdyby musiały oczekiwać na dane od użytkownika.
Można ten problem częściowo rozwiązać za pomocą ThreadPoola, czyli tworzysz stałą/dynamiczną pulę wątków które będą istnieć znacznie dłużej i będą wykonywać zlecone im zadania. (Taski)
w .NET ThreadPool jest dość specyficzny, nie możesz stworzyć jej instancję, ona już istnieje i już jest zarządzana.
Jak dobrze pamiętam: domyślna minimalna ilość wątków to dostępna ilość rdzeni logicznych a maksymalna 32767.
Gdy przez dłuższy czas dany wątek nie będzie wykorzystany to umiera (do wartości minimalnej a nawet i mniej gdy zapotrzebowanie jest jeszcze niższe), gdy w kolejce są zaplanowane zadania a wolnych wątków roboczych nie ma to program albo czeka aż jakiś wątek będzie dostępny (gdy osiągniemy maksymalną ilość) albo czeka przez chwilę i umieszcza w nowo utworzonym wątku roboczym (na puli) gdy żaden wątek roboczy nie został "zwolniony".
Taski to są proste zadania, one powstają, żyją, i giną dość szybko.
A więc jeśli operujesz na async/await to może być taka sytuacja że dana metoda (z modyfikatorem async) jest wykonywana po części na jednym wątku roboczym, a druga część (po await) na jeszcze innym wątku.
Czasami tworzenie osobnych asynchronicznych zadań się nie opłaca, więc jeśli dana metoda (z "Async" w tytule) nie musi się wykonywać asynchronicznie to wykonuje polecenia i zwraca już ukończony Task (na przykład chcesz odczytać pojedynczy znak od klienta a ten znak już się znajduje w buforze, a więc odczytanie go będzie bardzo szybkie i bez żadnego czekania), co za tym idzie metoda wykorzystująca async/await nie jest niepotrzebnie rozbijana.
Jeśli się w czymś pomyliłem to proszę mnie poprawić, ale mam nadzieję że dobrze wytłumaczyłem.