From the above explanation, I am not certain if the processing of 20 tasks should happen in sequence or can happen in parallel. However the below solution should satisfy either or both of the above requirements.
20 tasks in sequence:
In this case, the assignment for the subsequent tasks is not yet created until the first task is completed.
The solution would be fairly simple. The SLA will be defined based on a date time property and not based on a fixed time interval. On the completion of task 1, you may increment or decrement the time in the date time property that is used in SLA. Thus the SLA for next task will be adjusted accordingly on creation of next task. You may leverage collection rule and/or declare expression rule to derive the next SLA time if you need to calculate the time declaratively.
20 Tasks in parallel:
In this case, all the 20 tasks are created in parallel and the initial SLA details are already set in the assignment record.
In this case too the SLA should be defined based on a date time property and not based on a fixed interval. However in this case, once the task 1 is completed, the SLA for the remaining tasks which are already created should be readjusted using OOTB Assign-DefineSLATimes activity. It is best to configure a standard agent to readjust the SLA times.