I believe you could use rules, but on workflow level → it controls if the whole pipeline is created or not.
If you want to trigger the whole pipeline only on schedule, then I’d extract that part into the workflow > rules at the top of the file:
workflow:
rules:
- if: $CI_PIPELINE_SOURCE == "schedule"
# the rest of the yaml...
This way pipeline will be created only on schedule, and specific jobs depending on further rules.
However, you will still have the issue with the success / failure jobs: with needs, they need both jobs in order to run (AND, not OR). So, unfortunately, I believe you will have to split them in two (one for dryrun3 and one for dryrun4).