It occurs to me that I might be overthinking things. The one job a doorbell has to do is to make a noise. I already have some spare sound sensors like these. I can turn the sensitivity way down and house it and an Arduino or RPi 0 inside the bell case itself. I think it should be pretty reliable and I can build it with parts I already have.