This is quite a lot of store manipulation to be putting into what is essentially the starter code. I'm not sure it's really necessary, either — does any of the later code depend on having a monmap in the right location? I think everything that does that breaks out by detecting the store was syncing, first.
So instead of writing to disk etc, I think if we're syncing, we can just grab the backup monmap, and if we're not syncing, grab the existing one (unifying this and the next "load the monmap" block), and then go forward.

Also, we might prefer to use the synced monmap if we have a newer one from the failed sync attempt.