I took the risk and attached my circuit to my oscilloscope while it was connected to my chest. This is not advisable because it is a device that runs on 230V connected directly across the heart, and if anything goes wrong (I don't know what could go wrong, which is also a bad thing) it may kill.
I connected my scope probe directly to the AD620's output (which is set to a gain of around 7) and the scope GND to my circuit's GND.

Above was the result, a ~20 mVpp signal with a positive DC offset. There is a clear heart rate visible with a lot of 50Hz noise in between. I think the noise is mostly from my oscilloscope or probe which happens often at these low voltages; the output of my full (version 1) ECG circuit with both active and passive lowpass filtering is much clearer.
Let's not worry about the filtering at first. What I want is to:

I think this is a good waveform to simulate with (20 mV offset 10 mV Amplitude, Frequency at an arbitrary 40 Hz as it does not matter at this stage).
To remove the DC offset this highpass filter seems to work. Other possible values would be 1MO/1uF.

A 20 mV to 5 V amplification means a gain of 250. 100kO and 390O seem to work. Calculated gain is 257.4 so might be a bit high but I will find that out on the breadboard.



Why is the gain so low? Is this a limit of the IC? I used a TL072 this time. Looking at the datasheet it remains unclear to me; there is a 'Large-signal differential voltage amplification' specification of 200 'V/mV' which might has something to do with it but I am unsure.
I will try a different op-amp if I have one. A LM386N? No, gain up to 200. LM741? Also lists 200 V/mV. I wonder if the reason I could not get a full 0-5 V output in my earlier ECG circuit is that the opamp was just hitting the maximum. Perhaps I ought to increase the AD620's gain somewhat?
Why is there still an offset? Even when I remove the offset from the input completely the output stays this way. I tried without the highpass and that also does not improve. I also read about adding an equal value (same as on the negative input) resistor to the positive input but that has no effect. Maybe I just have to move (or add another) highpass after the opamp.

This looks better. I moved the highpass filter at the end of the circuit, on the opamp's output.
Also I think I may have set my AWG to the wrong amplitude earlier; that would explain the low output voltage I saw. The output voltage is still not quite there but I think my breadboard may have something to do with it, it started at 5.12 Vpp.
Next step: read this waveform using an Arduino. ~~For this I will need to get a virtual ground at -2.5 V, then that can be the Arduino's ground and the opamps output can go directly to the Arduino's analog input. To get 2.5 V from 8 V I can probably use a voltage diviver. The resistor ratios 10/22 or 15/33 should work.~~ Wait, what am I thinking? I can't shift the voltage using a voltage divider...
I guess I will need a summing amplifier on the next stage.
But using the opamp introduced the undesired offset. Will that not happen again if I use one for the next stage?