contar el tiempo que esta pulsado un boton

Dandole vueltas en el trabajo sobre papel creo q ya lo tengo solucionado, no se si sera la manera mas limpia pero creo q funciona. Seria algo asi, falta por pulir las condiciones pero ya estaria.

void loop() {
estadoboton1 = digitalRead(boton1);
if(estadoboton1 == HIGH) { 
tiempo=millis();
    while(estadoboton1 == HIGH) { 
tiempo2=millis();
estadoboton1 = digitalRead(boton1);

}
tiempo3=tiempo2-tiempo;

Serial.println(tiempo3);
if(tiempo3<1000 ){
 Serial.println("mola"); 
}
else{ Serial.println("no mola"); }
}
}