I would think that the easiest way to limit a single cylinder magneto spark engine is likely to ground out the kill wire from the ignition. This could be done using a relay that would cut the ignition when the revs get too high, then open and allow the ignition normally when the revs drop.
To detect the crankshaft revolutions, mount a hall-effect sensor on the flywheel housing somewhere where it will be in range of the flywheel magnet as it goes around.
Google for Arduino relay tutorial and tachometer examples. There was a thread here today from someone else doing a tachometer -- maybe compare notes with whoever that was.
For extra points, add a set of magneto windings and a voltage regulator to power the whole thing.