kodlarınızın doğru olduğunu varsayıyorum öyle de görünüyor.. mantık olarak kodların önbelleğe alınıyor ama where koşulunda istediğin şeyler ön belleğe alınan sorguları görmüyor. daha eski kayıtlara bakıyor.
2. ihtimal ise kayıtları anında yapıyor ki insert sorguları genelde bekletilmez. ama select count u dataadapter mantığıyla önceden belleğe alıp veritabanındaki veriyle değil var olanla çekiliyor. yani 10 kayıt bulunan veritabanı hafızaya geliyor ve 11. eklendikten sonra hafıza güncellenmiyor ya da güncellenmesi zaman alıyor.
yoğun bir veritabanı olduğundan bir çok işlem de zamanlama sorunu yaşanabilir.
elle sql de bir sorgu çalıştırdığınızda select * from yogunbirtablo gibi ne kadar sürede cevap geliyor bunu dikkate almak lazım. ama ne olursa olsun ya bu sorguları store procedure ile uygulayıp işi veritabanı tarafında yapmanız ya da cache olayını derinlemesine analiz edip insert işlemi sırasında kullanmamanız sorunu çözebilir.
daha basit çözümler içinde kısa aralıklarla birden fazla kayıt eklenen bir sistem değilse buton enable özelliğiyle birden fazla tıklamayı engelleyebilir ya da iki kayıt arasında 3-5 saniye bir limit koyabilirsiniz.