Esta solución me hace pensar que el problema es un refresh (implicito o explicito) que está ocurriendo.
El tiempo simplemente se minimiza porque después de insertar el registro físicamente, solo hay un registro que traer de vuelta, gracias al nuevo where.
En todo caso, lo ideal es que ese refresh no se de. Te recomiendo revisar, ya que aseguras que no hay eventos, los valores establecidos a las propiedades, tanto de la transacción como del dataset... aunque jamás he visto este comportamiento.
Saludos.