"Normally, history is saved on exit, but this doesn't happen when the connection is lost." – First of all, are you sure the old
csh has exited? My point is when an SSH connection is lost, the server may or may not be aware of this, at least for a while, and thus the old csh may still run when you connect anew. See this answer. Reasonably low settings of ClientAliveInterval and ClientAliveCountMax on the SSH server may help.