if statement for delay

Yes

Save the value of millis() when the signal goes HIGH. Each time through loop() check whether the signal is still HIGH. If so then subtract the start time from the current value of millis() and execute your code if the required number of milliseconds has passed.