dotTrace. без профилировщика понять проблему не получится. по опыту еще ни разу не удавалось выдвинуть правильное предположение без профилировщика (в этом мой опыт совпал с опытом некоторых умных людей которые написали книги). Была похожая проблема, оказалось проблема была в библиотеке в которой была своя реализация SpinLock-а, и при определенной комбинации версии jit компилятора, параллельной работы нескольких потоков, уходило в зацикливание. сначала на 20%, потом когда повторялась ситуация с другими потоками на 60%, на 80% итд