Rozwiązany. Po przetestowaniu prawie każdej możliwej metryki wydajności i zbadaniu każdego fragmentu kodu odkryłem, że błąd był spowodowany przez fragment przestarzałego kodu bazy danych. Główny problem powodował kod używający:
SqlConnection.ClearPools;
Doskonałe źródło informacji dla innych programistów, którzy chcą debugować swój kod i zarządzać pulami połączeń, można znaleźć tutaj:http://www.codeproject.com/KB/dotnet/ADONET_ConnectionPooling.aspx