Task Scheduling Policy
Tasks that take time (like, for example, Wait) usually schedule a wake up call, unless the wait is very short, in which case it may simply wait, blocking everything, for that short duration. But if the wait is long enough, or the execution time has exceeded safe thresholds, a schedule is saved so that the piston wakes up at the required time. When scheduling a task, the piston has two choices:
Override any existing scheduled tasks
If any previous run resulted in a schedule for the current action, that schedule is dropped and replaced with a new one. This means that any pending tasks inside the action are cancelled and a new action execution is started
Allow multiple scheduled tasks
This option will not cancel the previously scheduled tasks, but it will add a new schedule to the already existing one, causing all the tasks to repeat for as many times as the action was executed
Here is a good example of when to use Allow multiple scheduled tasks: