Так как строить синхронизацию потоков из тредпула, если эвейты не подходят, это такая головомойка. Можно конечно, но это на уровне «ёжики кололись, но продолжали жрать кактус». Просто неудобно. А иногда для большей производительности нужно писать ручную синхронизацию. Плюс со всякими CancellationToken не всегда хочется морочиться, а тред в отличии от таски можно тупо абортнуть через экспешн на уровне синтаксиса. Если скажем у тебя загрузка имеет кнопку Cancel. В тасках это делается через объекты синхронизации конечно, но это геморрой