Make the ExpireJobCacheWorker idempotent

Part of #178 (closed)

The WebhookWorker processed 60k duplicate" jobs the past 7 days, and spent 3 hours on that. Duplicate jobs are jobs that get scheduled when there is already a job in the queue for the same worker with the same arguments.

If the job was (marked as) idempotent, we would be able to deduplicate those jobs when they get scheduled.