A coleta de lixo é tipicamente relacionada à memória, não relacionada à CPU. Obviamente, você poderia ter objetos com rotinas neles que estão em loop e esses objetos estão crescendo lentamente ou o tempo entre as iterações do loop está diminuindo. Sim, você precisa criar um perfil de seus processos, pois isso indica quais métodos estão causando todo o tempo da CPU. Eu recomendo a ferramenta JustTrace da Telerik, embora haja muitos outros por aí.
Um outro pensamento, você pode pensar que descartou seu objeto, mas o loop ainda está em execução. Considere encerrar seus laços graciosamente com um símbolo ou condição de cancelamento.