Typically you would build this by having the reed switch connect a line to ground, which is otherwise held high by a pullup.
The simplest implementation would indeed be to use a wakeup interrupt input to the MCU to wake up on each falling edge caused by switch closure. Given how relatively infrequent these appear to be, if you do sleep mode right this is not going to cost much power.
While one could use a timer/counter chip - and in fact there’s one built into the ATmega. But it’s probably not necessary or going to save any meaningful amount of power over waking up for discerete events. And using that rather than the attention of software on the processor prevents addressing a concern you raised.
The possibility of the system stopping for potential time with the magnet activating the sensor is an interesting one. If you use a typical internal pullup, holding the switch closed against it will burn about 100 uA, which is no joke in terms of small batteries and extended life, if this is a situation which can endure for any meaningful period of time (the Dragino Door sensor hopefully has a solution!). Using really tiny switch currents can be a reliability concern; a good read switch is hopefully hermetically sealed in a glass tube to prevent contact oxidation, but those of dollar/pound store alarm buzzers are just leaves in a plastic channel exposed to air.
To me, solving the “switch stuck on” problem is the one place where polling would make sense, leveraging the fact that your wheel doesn’t spin very fast. Essentially, if the MCU sees that the switch is on, it could disable the pullup (in the simplest case go from input-pullup to output-low), then enter a a non-interruptible sleep for a time known to be safely less than the fastest revolution. After that time it wakes up by itself, re-enabled the pullup to check the sensor, and either repeats the process if things are still stuck there, or returns to normal wake-on-interrupt behavior if the magnet has moved away. Instead of polling you could also use a second sensor placed rotationally opposite, and simply toggle modes - when one fires, disable its pullup and watch the other, and so on. And divide your count by two. Incidentally, don’t just “undrive” the pullup, drive the input (and any pullup pin) low, as floating inputs can sit in the transition voltage range where the input structure draws some shoot-through current.
Granted, solving that problem is “fun” engineering - it may make sense to get an estimate of how much time the system would really spend in that position and what it would cost in battery before diving in. And in any case it would be secondary to first getting a wake-and-count-on-interrupt scheme going. It does however point to using either an internal pullup or an external one to another GPIO pin, rather than fixed wired. If making a board give yourself the option for both, you can always not install the external resistor over to the other pin.
Which reminds me, sometime I need to put a cycle computer on a microammeter and see if it draws more power with the magnet at the reed; for now I just try not to park that way.