Wann findet das Aufräumen über den Referenzzähler denn statt?
In diesem Fall beim Verlassen der Prozedur wenn der Speicher
der lokalen Variablen freigegeben wird?
In diesem Fall, ja. Du kannst aber auch gezielt über ein
tasks[I] := nil
den Referenzzähler herunterzählen. Ob dadurch aber wirklich schon die Instanz freigegeben wird, hängt noch von eventuellen anderen Referenzen ab.