Fix backend bugs with status reporting
- Fix propagation of error codes throughout job running call chain.
- Make job failures also trigger a finalize.
- Also check for failures in job phase execution.
- For now, indicate a workflow has failed when all nodes failed. This will be adjusted in the future to also fail when a workflow path has no successes for any configuration.