Help with multi function momentary buttons
Don't act immediately when a button gets pressed, instead when a button is pushed all you do is set the timestamp on that button and set a flag. 

Then when it is released or the time elapsed is large enough do the appropriate thing.

void loop(){
    int btn1State = digitalRead(btn1);
    static bool button1 = false;
    static unsigned long time1 = 0;

    if (btn0State == LOW &amp;&amp; !button1) {
        button1 = true;
        time1 = millis();
    }

    if (btn0State == LOW &amp;&amp; button1) {
        if(millis() - time1  &gt; SHORT){
            //do long action
            time1 = millis(); //reset timer
        }
    }

    if (btn0State == HIGH &amp;&amp; button1) {
        button1 = false;
        //do short action
    }

}