What is the proper way to reuse tasks?

Right now I have a periodic task that runs every 25 seconds to maintain a session with our backend.

I am executing the following function every 25 seconds. At some point, I seem to have multiple PlaybackSessionTask tasks running at the same time. Is there a way to clean up the created tasks once they have completed? Should I reuse one task and just call start?

function saveSession(titleId, seconds)
    m.playbackSessionTask = createObject("roSGNode", "PlaybackSessionTask")
    m.playbackSessionTask.observeField("response", "handleSaveSession")
    m.playbackSessionTask.functionName = "save"
    m.playbackSessionTask.contentId = titleId
    m.playbackSessionTask.seconds = seconds
    m.playbackSessionTask.control = "RUN"
end function

You can reuse m.playbackSessionTask task. Just don’t create new for m.playbackSessionTask
or
use the following to be sure previously used task was closed:

m.playbackSessionTask.control = "DONE"

It will finished task thread.

is DONE new in 7.6+? I though the only valid control setter values were INIT, RUN, or STOP
edit: Never mind, it’s been there all along.
Another question about tasks… why is the control value required to be UPPERCASE when set, but is lowercase when get??