Tienes razón, la clave está en centralizar el control de concurrencia. Te recomiendo mantener un contador compartido en tu servicio .NET (o en Redis) que registre las llamadas activas mediante los eventos de VAPI y, de forma periódica, valide con la API para cubrir eventos perdidos. Antes de lanzar una nueva llamada, consulta ese contador para no superar el límite, incluso cuando se ejecuten campañas. Si una llamada supera el límite, VAPI puede no emitir un evento claro, pero revisando su estado justo después de crearla podrás saber si fue rechazada o finalizada.
@Christian