Creo que usar D flip flops con una entrada de reinicio asíncrono puede resolver todos tus problemas:
simular este circuito : esquema creado usando CircuitLab
¿Cómo funciona esto? Deje que el flip-flop superior sea A y el inferior sea B
Cuando enciendes tu circuito, presionas \ $ \ overline {RST} \ $ hacia abajo para que ambos flip flops tengan un valor cero, lo que significa que \ $ Q_ {A, B} \ $ son bajos y \ $ \ overline {Q } _ {A, B} \ $ son altos.
Cuando A (B) alterna, \ $ Q_A \ $ (\ $ Q_B \ $) se pone alto porque \ $ D_A = \ overline {Q} _B \ $ (\ $ D_B = \ overline {Q} _A \ $ ) fue alto, y por supuesto \ $ \ overline {Q_A} \ $ (\ $ \ overline {Q_B} \ $) baja. Ahora, pase lo que pase a B (A), el circuito no puede cambiar de estado porque \ $ D_B \ $ (\ $ D_A \ $) es bajo. Tenga en cuenta que si algo le sucede a A (B), es decir, que llega otro pulso, el circuito cambia de estado.
Para restablecer todo, simplemente tire \ $ \ overline {RST} \ $ hacia abajo.
Esta cosa puede funcionar si los impulsos A y B no se acercan demasiado en el tiempo: si presionas ambos botones, o los presionas muy rápidamente, no se especifica qué hará este circuito. .
Lo siento por el esquema feo, pero no pude averiguar cómo representar los cables diagonales.
addendum si necesitas usar jk flip flops, porque los tienes por ahí o porque es una pregunta de tarea o porque te encanta jk ffs, puedes crear un Dff con un JK y un no puerto:
simular este circuito
addendum 2: Como señaló Jasen en los comentarios, para esta aplicación en particular no es necesaria la puerta, ya que las señales de entrada a los flip flops también están disponibles en forma negada.