ButtonBehavior.MIN_STATE_TIME defines a minimum time the button stays in down state. But the on_release event gets dispatched immediately. Imo it would be better to defer the event dispatching as well to ButtonBehavior._do_release, at least on demand.
Any objections?
-r