Non ho testato, ma mi chiedo se hai lo stesso problema se hai utilizzato un TransactionScope con le opzioni di IsolationLevel.ReadUncommitted. Dovresti incapsulare il tuo set completo di chiamate e ciò dovrebbe negare la necessità di questa affermazione. Mi rendo conto che questa affermazione non è la tua preoccupazione di base, ma in generale.
Un'altra cosa che puoi fare è creare una classe DBConnectionScope (o sfruttare la classe di un fornitore affidabile) e ridurre il numero totale di connessioni aperte.