How do you add a cool down timer?
I suggest a timeout implementation.

Use a timer property to let the BGE count the time for you (timer properties always count upwards).

I suggest to use states to toggle between "ready" and "blocked" status.


State "ready".

In this state the operation can be activated at any time. 

When the operation gets activated, you switch the state to "Blocked" and set the (negative) timeout value.



State "blocked"

In this state the operation should not be available.

All you do is wait until the timeout happens. You do this by measuring if time gets positive. When it does you switch to state "ready".



Conclusion

There are other ways to implement timeout. This one is a pretty efficient one as there is not really much to do rather than waiting on the events to happen. By using states you clearly separate the logic of both states.

I hope it helps