How to delay the assignment of a task until a condition or duration is met?

Hello,
is there a possibility to delay the assignment of tasks to a user until a condition (e.g. the user must have less than 5 tasks assigned) is fulfilled?
This should only take effect when the process has arrived at the task, meaning the task is enabled for execution.
You can simply use a gateway and add a condition and, if the condition is not met, insert an event that waits 5 seconds and then leads back to the gateway. The desired behavior could be achieved in this way, but the delay mechanism would be before the process arrives at the task and not, as desired, when the process has already arrived at the task.

Is it possible to implement a delay in a task (until a set duration or a condition like the one in the example above is met) that only takes effect when the process has arrived at the task and the task is ready for execution?

Many thanks in advance.