The 'opposite states' is not a mistake. The bottom switch will be closed if the door is closed, the top switch will be closed if the door is open..
A simple solution might be
#define REED_ACTIVE LOW
The above applies if the contacts are wired between pin and GND (from memory, I think that that is correct for your code). I can't look at your code now, but everywhere where you check a reed contact with '== LOW' , you can check with '== REED_ACTIVE'; and where you check with '== HIGH', you can check with '!= REED_ACTIVE'.
The 'delays' will not interfere if you use them properly. But the total implementation requires some thinking.
I grew up with pull-ups, so I use that. In which case switches and contacts are connected between a pin an GND. If you use pull-downs, switches and contacts are connected between pin and Vcc. It's useless to use the internal (or external for that matter) pull-up with an external pull-down.
If your switches/contacts are close to the Arduino, the internal pull-ups are OK. I don't know what the limits are. You can start a separate thread for that.
If all your switches/contacts are wired between pin and ground, you can change REED_ACTIVE to simply ACTIVE and use the given '==' and '!=' everywhere where you check the state of a button, contact etc.