ThreadPeriodicTask graceful termination

I was trying to solve an issue where reset was causing a crash (mainly in Navigation::updateNavSteering()) but my fix was that I wanted to make a station that stops all of the threads before resetting and then calls BaseClass::reset() ect, and restarts the threads.  I was unable to do this because when i terminate the thread with the old code the thread would stop wherever it was so if it was in the middle of a lock it would remain locked forever.