The sort of system you are using... an electro-mechanical strikeplate seems by far the best alternative for your application... it is "fail safe".... if it doesn't get electricity, the door can't be opened.
The other sort of electrical lock, the magnet type, is "fail weak"... the door is only "locked" when the device IS receiving electricity.
More on electromechanical strikeplates at...www.arunet.co.uk/tkboyd/ec/ec1ems.htm
Try to think through all the possible scenarios... I haven't looked in detail at your circuits, but ask yourself...
What does it take (in terms of "steps", not volts/amps) to "turn on" (i.e. unlock) the strikeplate? How could that happen, other than the ways I mean for it to happen.
Ask yourself what happens if your power goes off, and then on again. Is there a relay in your system? What happens if it fails? What happens if the Arduino program starts, but then freezes up before getting to the "loop" part?
The good news is, that with the lock you are using, it shouldn't be too hard to make the system failsafe.
You might want to put a switch, inside the house, on the line to the strikeplate. If you were going away for a few days, open the switch, thus ABSOLUETLY disabling the electronic lock. Can't open when there's a "break" in the wire just before the lock, can it?
Is this on your home? What home is hard for a burglar to get into? If someone is willing to steal your TV, they won't be shy about breaking a window. I'd almost make it easy for someone to break in, so that repairing the break-in isn't expensive. I put my energies into alarm systems, which make it unpleasant for burglars to STAY in.
And I set them up so that I can have them on when I am at home, in bed, asleep, monitoring the parts of the house I don't use in the middle of the night. You do not want to be the person who has seen the face of some burglars. And while I already have bells wired up, I connect them to smoke detectors, too.