Wait until exit to write status caches. Not very pretty.

I think this works, but I don't like manually writing caches in the launcher.

Uses a destructor to write out at the end, avoid unnecessary/repetitive disk io