For me, the cause was moisture that got into the heart rate sensor after the adhesive holding the glass over it failed. I thought I was safe because I had replaced the glass and adhesive fairly quickly and I keep my watch dry, but I started experiencing issues a week or two later like you describe. Evidently some moisture got in there and caused some corrosion.
I took the back off the watch and disconnected the heart rate sensor and everything is back to normal (minus the nonfunctioning heart rate sensor). To disconnect the heart rate sensor, you only need to remove the back and detach the ribbon cable going to watch back. You will also need to place something in between the connector and where it attaches to the pcb, as it can and will reconnect itself when you reattach the back to the watch. I just used a piece of tape between the connectors to make sure.