register one expiration timer per subscription

... instead of a global one, which breaks when there is more than
one view per workspace