The fundamental rule for Scheduling is the Highest Priority Ready task is ALWAYS selected to run. Trying to make some task that is NOT at the highest priority of the ready list run could be a confusion to the logic.
I suspect that a perceived need for this indicates not understanding how to use priorities, or not having assigned those priorities right. If you want a task that isn’t the highest priority to run next, maybe it should have had a higher priority, or maybe the task that would run it is stead has too high of a priority, or a task has mixed priority operations.
A task that has a few things that need to be done quickly at high priority, then more steps that can be done at a lower priority, and will NEVER need to go back to the higher priority operation until ALL the low priority stuff is done, would be one of the few reasons to have a task that dynamically changes its priority, dropping when it gets to the low priority operations, and then raising again when it finishes them and gets ready to wait for the next High Priority request.