хочешь с кучей тредов - ну ок, точно так же у нас оказывается 1 тред работает, осталньые ждут задач в тредпуле, 0 тредов заморожено
100 тасок запущенны одновременно и все кроме одной ждут, пока выполнится myLock.Release();
когда в таске доходит до await myLock.WaitAsync(); я хз что именно конкретно происходит, но ничего хорошего точно.
1) либо таска останавливается, её тред уходит назад в пул, планировщик переключается на другую таску, которая получает тред из пула - чтобы тут же вернуть его назад, поскольку блокировка не снята и т.д.
2) либо просто тред, в котором работала таска, дерётся за myLock, что логичнее, а другие таски при этом получают новый тред из пула и делают то же самое
и то и то плохо, других вариантов я не вижу