timers: do not retain a reference to the async store after firing
After firing timers, we can clean them up by iterating over all active stores and setting the relevant symbols to undefined.
This is still a draft because we will need to extend it to immediates and intervals, too.
Fixes #53408