Hello Neil,
You should never never never do a snapshot on a ceph cluster (in a vm perspective as you
say). I have my ceph cluster in virtualbox but i only shutdown my cluster with commands
like ceph osd noout, norebalance, pause etc.
Regarding the osd heartbeat, here is some articles that might help you.
https://ceph.io/planet/dealing-with-some-osd-timeouts/
https://access.redhat.com/solutions/2127471
You might want to adjust any timers if you want but do make sure there is connectivity
between the osd nodes and also you may see these heartbeats during scrubbing as well.