Múltiples tiempos de espera de conexión SQL simultáneos en el servicio de Windows multiproceso

Tengo un servicio de Windows multiproceso que he desarrollado con VS 2010 (.NET 4.0) que puede tener desde unas pocas hasta una docena de subprocesos, cada uno recuperando datos de un servidor lento a través de Internet y luego usando una base de datos local para grabar estos datos (por lo que el proceso está vinculado a Internet, no a LAN o CPU).

Con cierta regularidad, recibo una inundación / ráfaga / ráfaga del siguiente error de varios hilos simultáneamente:

System.Data.SqlClient.SqlException (0x80131904): Tiempo de espera expirado. El tiempo de espera transcurrido antes de la finalización de la operación o el servidor no responde.

La pila de llamadas para este error suele ser:

at System.Data.ProviderBase.DbConnectionPool.GetConnection (DbConnection owningObject)

at System.Data.ProviderBase.DbConnectionFactory.GetConnection (DbConnection owningConnection)

at System.Data.ProviderBase.DbConnectionClosed.OpenConnection (DbConnection externalConnection, DbConnectionFactory connectionFactory)

at System.Data.SqlClient.SqlConnection.Open ()

No estoy especificando un Tiempo de espera de conexión en la cadena de conexión, y hay otras aplicaciones y procesos trabajando en esta base de datos. ¿Alguien ha encontrado este tipo de comportamiento y, de ser así, qué se hizo para evitarlo?

l método más comúnmente llamado en mi capa de acceso a datos se ve así, y todos mis otros métodos DAL siguen el mismo enfoque:

using (SqlConnection con = new SqlConnection(GetConnectionString()))
using (SqlCommand cmd = new SqlCommand("AddGdsMonitorLogEntry", con))
{
    cmd.CommandType = CommandType.StoredProcedure;

    /* setting cmd.Parameters [snipped] */

    // We have been getting some timeouts writing to the log; wait a little longer than the default.
    cmd.CommandTimeout *= 4;

    con.Open();

    cmd.ExecuteNonQuery();
}

¡Muchas gracias

EDITA

Dados comentarios acerca de que esto ocurre en entornos reflejados, debo mencionar que la base de datos en cuestión está reflejada. Está marcado en SSMS como "Principal, Sincronizado", en modo "Alta seguridad sin conmutación por error automática (sincrónico)".

EDIT 5/26/11

No veo nada en los registros de SQL Server que indique algún problema. (No tengo acceso al Visor de eventos de Windows en ese servidor, pero he pedido que alguien me busque).

Respuestas a la pregunta(5)

Su respuesta a la pregunta