Sometimes a Task in a project becomes obsolete. I'd rather not delete the task, and in fact sometimes the task will be worked on already (but not completed). In these cases, we created an "On Hold" status. But then at the end of the project we'll change it to 'Completed'. I'm now thinking about creating a custom Status called "Obsolete" and equate it with "Complete". How do other people handle tasks in a project that are deemed no longer needed?
For tasks we created a "canceled" status where tasks had been started and cannot be finished, and a "skipped" status for work that had not been started (because someone decided that they needed to be able to show that they had considered the task and it was not needed for that project). Both equate to "complete".
We have Not Needed/Cancel. One thing to consider... through the teams (in team settings), you will want to set it up so that that new status is part of the "Done" button. The reason for this... if someone changes the status to Not Needed and it is not part of the Done button, it stays on the Working On list in My Work. By adding it to the Done button, they can put the status to Not Needed and then it will be removed from My Work.