A couple of suggestions to add to duke37's advice.
When the switching device turns off, there will be a big spike at the collector/drain which will be coupled back into the base through the Miller capacitance (*) in the switching device. Therefore you need a drive that not only pulls high strongly, to turn the active device ON, but pulls low strongly as well, to ensure the device is fully turned OFF.
I'm not sure that a Darlington would be the best choice for the switching device, because it doesn't turn OFF strongly, and the collector-emitter capacitance of the first transistor adds to the Miller capacitance of the main transistor. I believe Darlingtons are (or were) used in electronic ignitions though.
I agree with duke37 that a MOSFET is probably better than a bipolar transistor. I believe IGBTs (*) are also used in electronic ignition circuits. In either case, a proper MOSFET or IGBT driver IC is probably a good idea, to get the fast clean switching you want.
If anything unusual happens in your high-voltage switching circuit, it's possible that a large pulse will be fed back to the Arduino. So you want plenty of components between the Arduino and the switching device. This is another reason to use a driver IC. You can connect a series resistor from the Arduino to the driver IC as long as it has high input impedance and low input capacitance. You may also want to use a logic gate as a buffer between the Arduino output and the driver IC input. It's a lot cheaper and easier to replace a logic gate IC than the micro!
As duke37 suggested, you should definitely put a zener diode across the switching device. Unfortunately, this will slow the rise time somewhat, and reduce the sharpness of the output pulse. If this is a problem, you can put a fast high-voltage diode in series with the zener (cathode to cathode) and put a small-value capacitor across the zener. When the circuit is running continuously, the capacitor will charge up to the zener voltage and the only capacitance seen at the switching device will be the capacitance of the fast diode, which is a lot less than the zener capacitance.
The spark will occur when you turn the switching device OFF. You have to turn it ON some time before then, to allow the current to build up in the coil. In automotive usage, this time is called the dwell time, I think. Ideally you want the dwell time to be exactly long enough that the coil is just starting to saturate at the time that you turn the switch OFF, but that requires that you know in advance when the spark will be triggered. Since the engine speed can't change instantaneously, you could calculate when to turn the switching device ON based on the previous spark interval - once you know the ideal dwell time for your coil, subtract it from the previous spark-to-spark interval and wait that long before turning the switching device ON. Then when you turn it OFF at the exact time, it will have been ON for roughly the right length of time, since the spark-to-spark interval cannot change rapidly (because of the inertia in the engine).
Good luck! Please let us know how you get on.
(*) Google and/or Wikipedia any unfamiliar words.
Edit:
I may be wrong about the importance of having a very fast rising edge at the drain of the switching device. I assume this is important because any capacitance will delay the voltage peak, and that would cause the spark to fire shortly _after_ the switching device turns OFF. But reading duke37's post again, I remember that electronic ignition circuits do use a capacitor, and so do points ignition systems - it's the "condenser". Perhaps this improves the spark quality by reducing the impedance seen at the coil secondary. Do you know? Your circuit diagram doesn't show a "condenser". If you use one, the zener capacitance won't be significant so you won't need the diode snubber circuit I described. But be aware that there will be a short delay between the time when you turn the switching device OFF and the time when the peak voltage is reached at the coil secondary.