One failure case worth adding to the cache example: the fetch takes longer than the five-second lock. A second worker acquires a new lock, then the first worker's finally block deletes it. The unique token and compare-and-delete from section 4 would protect this path too. A test with a deliberately slow fetch would make the difference visible.