He hallado una pequeña forma haciendo pruebas de velocidad entre varias formas planteadas y son las siguientes:
Código C#:
Ver originalint cont = cadena.Split(new String[] { patron }, StringSplitOptions.None).Count() - 1;
int cont2 = cadena.Length - cadena.Replace(patron, " ").Length;
// reemplazo con " " porque 'patrón' tiene 2 caracteres.
// Si fuese uno solo, lo reemplazaría con ""
Dos aclaraciones: Mi pequeña rutina definitivamente la deseché por ser lenta. La sugerencia de ramiroli la agradezco pero resultó que también tuve que desecharla por ser no rápida tampoco.
Bueno, la conclusión es la siguiente: usando una cadena de longitud 4 320 000,
La primera encuentra 1 600 000 repeticiones de un patrón en 2 segundos.
La segunda entruentra 1 600 000 repeticiones en menos de 1 segundo.
Así que la segunda que encontré es la más rápida de todas las formas que he podido hallar. Gracias a todos. Les agradezco y me siento feliz de haber terminado con esto.