Since posting this, I've cancelled my iD mobile SIM (I thought coverage/speed was pretty good on Three) as managing the account without being able to receive SMS messages to the number proved too difficult. Instead I've gone for the marginally more expensive 18 month contract on giffgaff which I pay £10/month for 25GB data. That's more than enough for me as I can tether my phone if I ever run out.
Giffgaff support has been great, and I can receive 2FA codes via email. O2 coverage seems slightly more patchy, but has been fine the vast majority of the time.