Creo que el problema se debe a las altas corrientes que fluyen cargando las tapas de entrada BJT y las tapas de puerta MOSFET en el borde ascendente / descendente. Esta alta corriente que se extrae a través de la resistencia de salida del uC está causando una caída de voltaje. Recuerde que los voltajes en los condensadores no pueden cambiar instantáneamente y que algunas oscilaciones son inevitables.
Sin embargo, creo que este problema podría resolverse fácilmente reemplazando la etapa BJT con dos etapas comunes de inversor de emisores, con una resistencia de colector de ~ 1k Ohm en la primera y la misma o menos (100 o más o menos) para la siguiente etapa. Necesitaría dos BJT de NPN y algunas resistencias (los valores pueden variar mucho, solo en el rango de 1k y 500). Desde la uC hasta la entrada base del primer BJT, coloque una resistencia de tamaño pequeño (alrededor de 200 ohmios aproximadamente).
simular este circuito : esquema creado usando CircuitLab
Todo lo que hace es amortiguar la salida a través de dos inversores. Casi siempre que vea una señal que se comporta normalmente cuando está descargada y tiene alguna caída u oscilación cuando está conectada a su carga, puede estar seguro de que se trata de un "problema de carga". Esto solo significa que la resistencia de salida de la señal original es lo suficientemente baja para impulsar el pin, pero no la carga que intenta conectar. ¡Así que prueba un búfer! Si la versión beta de los BJT es 80+, debería saturar los voltajes de salida en los rieles.
Considere un cambio a alto en la salida de uC. Ahora, la única capacitancia vista por el uC es una unión de base-emisor, y su pico de transitorio alto está limitado por la resistencia de 200 ohmios. Esta salida alta enciende el BJT y hace que el nodo de salida (colector) caiga a la tensión de saturación (muy baja, tal vez .2V). Esto, a su vez, hace que la 2ª etapa deje de conducir y la compuerta MOSFET se coloca en VDD a través de la resistencia de 500 ohmios. Esta velocidad de carga / descarga se puede establecer por el valor del resistor de salida. Los valores más bajos de resistencia causarán un cambio más rápido, pero también disiparán más poder y causarán picos transitorios más grandes.
También diré que quizás no haya un problema aquí. Una pequeña caída como la de la salida no es lo suficientemente baja como para apagar el LED. Si amplías cualquier señal lo suficiente, comenzará a verse sucio.