Хорошей практикой программирования считается вызывать ConfigureAwait в базовых «библиотечных» методах и возобновлять контекст только тогда, когда потребуется — в ваших внешних методах «пользовательского интерфейса».
Единственная ситуация, в которой может возникнуть необходимость в создании экземпляров Thread, — создание потоков STA для COM-взаимодействий.
как правило, параллельное программирование на сервере будет конфликтовать со встроенными параллельными средствами и не принесет никакой реальной пользы.