Are there strong/long-term reasons to use `contextvar.reset()` over `contextvar.set(old_value)`?

The use of contextvar.set(old_value) always seemed unsafe to me. But after looking at it closer, it seems actually perfectly safe when used to implement a context manager?

There are some advantages to tokens (sanity checking, unsetting), but changing API that currently has:

old_state = set_state(new)
# reset again:
set_state(old_state)

is churn and I would not do it unless there is some (potentially long-term!) advantage to use tokens beyond sanity checking.