Stagger each snapshot/subprocess in finalsink
Related to #36
Finalsink takes a couple of snapshot intervals, for dumping zerolags and segments to disk, as well as FAR calculations, combining marginalized stats, etc.
We launch all of them at the same time, and that hammers the CPU, potentially leading to spikes in latency. We should stagger the launch of each process, based on roughly how long each process takes, to try to smooth our CPU and disk usage.
e.g. from a BNS run, showing the CPU load wave, memory usage, latency, median latency excluding outliers, and the number of active calcfap processes (often launched in sync with other snapshots).
As #36 notes, finalsink is on the whole doing far too many jobs, and particularly in appsink_new_buffer. At some point, most of these subprocesses could be launched from a cronjob. This issue shouldn't add any significant technical debt though. The subprocess functions are already standalone, we just need to stagger the launch of each, which should be even simpler to do if we move them to separate tasks.