I’m a bit confused about the purpose of InvisibilityTimeouts. The explanation given to the purpose of InvisibilityTimeout in the HangFire documentation here states that it’s used to handle process termination, specifically ignoring a job with a non-null FetchedAt value for a set amount of time, with this time set by the InvisibilityTimeouts. But if we have in our HangFire tables a queue of jobs to be executed, and a job will only be removed if it’s been successfully processed, and requeued in case of exceptions, removed from queue in case of JobAborted Exception, why do we need an InvisibilityTimeout interval to take of process termination? What is a process termination? Arent these simply Exceptions that have been taken care of already?