Of course I haven’t tried it, what is the point in trying something you know will fail? All it can do is to half the number of times it goes wrong. The whole point about good design is that you have to anticipate what events can happen and when they do what is the result going to be. Once you can do that you can build a system that will cope with it.
Anything that can happen will happen. It is the failure to spot this that can lead to intractable bugs that take equipment like logic analysers to track down. With a bit of thought you can avoid that.
The great thing about a program in a controller is that you know exactly what is going on and it is so much easer to get the design right.