Jag svarar på min egen fråga eftersom jag har lyckats undvika krascher. Jag har dock fortfarande problem med sekundära fel och har startat en ny tråd med detaljerna.
Min återställningskod hanterar nu sekundära fel annorlunda. Det kommer att försöka låsa igen ett par gånger, men bara när felet är ett dödläge. Om någon annan typ av fel uppstår kommer programmet att ge upp.
Även om detta innebär att besvikna användare får felmeddelanden, har jag inte haft en klusterkrasch sedan denna förändring och jag har inte sett det fruktade "servern har gått bort"-felet.