Every sref calls the corresponding buffer-exec savefn. The first call to buffer-exec in an interval spawns a thread to save after the interval.
I think I just had my head stuck in the 'iterative' way and had to twist a little to return to the event-driven approach.
Reminds me of the time I used at to simulate cron.