The coil primary waveform is complicated, it spikes up to around 400Vpk and then there is the plateau depending on the spark duration, and ringing afterwards, then starting over again repeating the dwell period. So your circuit must tolerate 500V spikes, and debounce the ringing. The debounce time depends on the #cylinders and max RPM.
I use a couple transistors to do this. If you are really worried about cost, you can run it into the MCU after a voltage divider/clamp/RFI filter, and debounce in firmware.
Your signal filtering circuit I would say is missing a -ve clamp diode for the transistor E-B, you don't need an EMI filter after the transistor and the 100R resistor is wrong. I find 5W zeners don't work as expected because they have large capacitance. Anytime I tried to trigger off the HV spike, it was difficult because the ringing can go over the initial spike, say 125Vpk and it triggers twice.
So I have best luck looking for fast +dV/dt portion and ignoring anything after that for a several msec.
edit: schematic jpg was corrupted, fixed