Thinking like an embedded systems engineer (I am) instead of a mathematician (I'm not), I would have a sensor to know the state of the lock and only whack the unlock solenoid if the lock has been discovered to be closed.
Always treat mechanical devices in a non-deterministic fashion.
As a software developer I'd always try to unlock it. The user probably has a reason for pressing the button. Maybe your "is the door locked" sensor is broken? If you're afraid of overheating it wait a bit after the second try before enabling it again.
You might be surprised by the semantics assigned to double clicking the button by some manufacturers. On some BMWs (mine included) locking it twice DISABLES the alarm. It's intended for ferries / low-loader recovery etc. but if you don't know it...
The lock button on a BMW is completely driven through the CPU. When you lock the car with the remote, the lock buttons inside the car AND THE DOOR HANDLES do nothing. Anti-theft measure I suppose.
Salesmen have to remind every new customer about this, since sooner or later someone locks themself or someone else in the car and the remote has walked away...
VWs can do a thing where the windows open if you hold the lock key down - fortunately this can be turned off in the cars configuration settings for people who live in rainy countries!
The user manually requesting an unlock is one thing. He's the software running the lock. I'm talking more about an automatic unlock request from high-level software control.
There are techniques to monitor the health of the switch and know when the sensor is failing/has failed. THEN you can whack the solenoid to your heart's content if you believe the sensor is damaged. But if you have a working sensor, there's no need to overstress the solenoid and mechanical linkage.
I'm not saying this is how every car is or should be designed, especially a Civic. You're also in the vicinity of the car - either you're sitting inside it or you're using the keyfob within visual distance.
But if you're locking/unlocking your car over the internet with this funky API and want to be sure it's locked, how do you do it? You don't hit the solenoid 20 times and say "well, good enough".
Wait, perhaps I am understanding it wrong, but if I were to consider a lock sensor as non-deterministic, wouldn't that imply that I always have to send the unlock signal, regardless of lock state, because you don't trust the sensor?
Always treat mechanical devices in a non-deterministic fashion.