>As a debug exercise you might add a GUID property to your connection class and log this before some of the offending error lines. This should enable you to check whether different hits were actually accessing the same connection and, if so, might also provide a clue as to where this was happening...?
The GUID property is a good idea. However, when those hits are hitting the server at the same time, only one will have the error. So, even if I would have a GUID, I wouldn't be able to compare it against something.