Currently, when you call setCooldown on a button, it resets the cooldown to the new value, even if it's shorter. Would it be preferred to keep the existing cooldown if longer, and perhaps provide an optional boolean argument overwriiteCoolodwn to setCooldown to force replacement of the cooldown?
Depending on your point of view, this could be seen as either a breaking change, or as a bugfix where the intended behavior would be to keep the longer cooldown.