For the restart case, write down what survives a process exit. If the signal was already acted on, a fresh process needs a saved marker or a broker check before it can send again. Test that after a completed send and after a timeout, because the timeout leaves the order state unknown.
Arnold Holm
Challenge Pre-Check: know before you risk. Your rules, tested against prop limits. Historical simulation, not a forecast.
Your last principle becomes concrete in an automated trading test: an entry condition can be correct while the requirement never says whether a restart may submit it again. I would put a positive case, a no-entry case and a restart-on-the-same-bar case beside that requirement before coding. That tests the intended behaviour rather than treating a green indicator calculation as proof that the whole bot is correct.