There is a few things you can do to tidy that config up. I have uploaded an example
here.
Firstly, there is a 'master shutdown' function built in, that way you can set a single condition at one point and then all you have to do is tick the box in each output you want to be controlled by it. It saves writing the same condition over and over for every output.
The same goes for the ignition, you can create a function which is toggled by the ignition switch. You then use that function in your outputs. The way you have done it will work fine, this just makes it a bit easier and if you ever want to change how it works you only have to do it in one place rather than every output.
The starter function you can make quite simple or really complicated with auto restart and all sorts of things. To keep it simple you can make it so that it will only crank if the ignition is on and the engine isn't already running. My example has Engine Speed coming across on CAN and I am using that value to determine if the engine is running (ie greater than 60 which in this case represents 600RPM).
When you hold down the starter button the engine will crank as long as the master switch and ignition are on and the engine isn't running. As soon as the engine goes over 600rpm (should be more than cranking, less than idle) then the starter will stop. You can of course stop cranking any time by releasing the button.