I had the same issue with my E46. The problem that i found on mine was that the grease around the moving components got very stiff(frozen-like) during colder temperatures making the lock either not move, or move in slow-motion. All i did was remove the door panel and clean all the moving components with some wd-40 while locking and unlocking at the same time. This cleaned out the existing grease and loosened it up. After that i applied some white grease all over, and worked great for a long time after that.
That being said, i'm not sure if it's the same thing in your case, but worth a try.
BMW...Now you're playing with power.