[master] Don't block when evaluating requisites of parallel states
What does this PR do?
Evaluates requisites between parallel states less synchronously.
What issues does this PR fix or reference?
Fixes https://github.com/saltstack/salt/issues/59959
Previous Behavior
A state with unmet requisites marked as parallel would block state execution until all requisites were met, i.e. its requisites would be evaluated synchronously.
New Behavior
Execution of a parallel state with unmet requisites is postponed, allowing other parallel states with met dependencies to be started immediately.
This does not implement complete parallelization of requisite checks. The stack of postponed parallel states is iterated over after each single state execution, meaning a non-parallel state in between causes parallel ones whose dependencies finish while it is executing to be started only after it has finished.
Merge requirements satisfied?
[NOTICE] Bug fixes or features added to Salt require tests.
- [ ] Docs
- [x] Changelog - https://docs.saltproject.io/en/master/topics/development/changelog.html
- [x] Tests written/updated
Commits signed with GPG?
Yes