Detecting engine running is easy enough if you just measure RPM are above a number which is a bit under idle.
Measuring oil pressure may not always work as some engines may take a while to build up oil pressure, even with the engine running, and others may build up oil pressure even while cranking.
Measuring alternator output is also not reliable because many alternators will not put out charging voltage with the motor idling.
Let us suppose for a moment that measuring RPM>500 will work. Then making an astable with (say) 5 seconds ON, 10 seconds OFF is trivial and the output is disabled by RPM>500. This is trivial and it would work if everything were so simple ... BUT ...
When you crank with the ignition key you listen subtly to the engine noise and release the starter as soon as you hear the engine is firing, even though it is nowhere up to speed. If you do not release then the gear may be damaged.
With an automatic starter you do not have this feedback so you just crank for a definite period (say 5 seconds). If the period is too short then the engine will not start reliably but if the period is too long then the electric starter may be trying to crank when the engine has already started.
It seems to me a more complex feedback system would be required. For instance, I would think the cranking motor consumes loads of power while it is cranking and that power consumption diminishes greatly as the motor starts to rotate by itself. By measuring the current taken by the starter we could stop cranking at the right time.
I would like to see how this problem is solved in existing machines because I do not think it is as simple as just cranking for x seconds. Or maybe it CAN be solved that way. I'd like to know but I would not assume so.