All of this can be done by putting some of your actions in scripts and calling them from the automation. They can be run in parallel, or series depending on how you call them. They can cause the automation to halt on error, or not, again depending on how you call them.
https://www.home-assistant.io/integrations/script/#waiting-for-script-to-complete