Snapshot Isolation Mode could theoretically cause this, but only if the RetrieveMultiple is within a SQL transaction that started before the created record was committed to the database. As your code is running as a windows service application, you cannot
create SQL transaction across method calls, so it's actually unlikely that the RetrieveMultiple is within a SQL transaction that started earlier.
How are you determining the 2-3 second gap ? Could it that you're recording the time that's reported by different servers, and that their clocks are out of sync ?
Microsoft CRM MVP - http://mscrmuk.blogspot.com/ http://www.excitation.co.uk