We have a theory that gen 2 GCs can introduce delays in an application, is there a way to determine how long GCs take?
There are performance counters for the total time spent in the GC, and various information on the number of collections, heap sizes, etc. See this article for more details.
If you just want to take a quick look at the application, use the process explorer . It can show most of the .NET statistics for a process.
.NET 4.0 has an ETW for the GC, which can help in profiling the time spent on the GC.
Here is an answer similar to your question Can you reproduce this 64-bit .NET 4 GC error?
Perfview keeps track of all sorts of useful information about the GC:
Downlaod: http://www.microsoft.com/en-us/download/details.aspx?id=28567
Blog Post + Video: http://blogs.msdn.com/b/dotnet/archive/2012/10/09/improving-your-app-s-performance-with-perfview.aspx