Getting items with overlapping DateTime using Linq
A faster version of your final where clause is:

cr.Answered.Value &lt;= g.chat.Closed.Value &amp;&amp; cr.Closed.Value &gt;= g.chat.Answered.Value


If you do not want to count end points as overlapping (e.g. a call ending exactly at 9:59 and a call beginning exactly at 9:59 do not overlap) then use:

cr.Answered.Value &lt; g.chat.Closed.Value &amp;&amp; cr.Closed.Value &gt; g.chat.Answered.Value


You can also remove the .Where (cr =&gt; (cr.ID != g.chat.ID)) condition and subtract 1 from the total count since it should be guaranteed that there is only one call taking place by the same operator during the same time period in question.