Based on your use case — triggering workflows to power up VMs, run processes, and shut them down, with tasks ranging from a few minutes to hours — Temporal seems like the better fit. Temporal is built for long-running, resilient, stateful workflows, and it would provide better reliability and fault tolerance when working with VMs that can be powered off and on dynamically.
However, if you are looking for something easier to implement (and the tasks are more time-bound), Apache Airflow can still be an option, especially if the workflows are primarily periodic with short-lived tasks. If you prefer a more lightweight and container-focused solution, Argo Workflows could also be worth considering.