Push Button with two functions

PaulS:

but the timed hold is an example on how to use millis().

Well, I recognize that. But, clearly OP didn't. I think that the blink without delay example is a better choice, but only because it is focusing only on one task. Your code shows how to do a number of things, not all of which are on OPs requirements list.

Hence why I recommended Blink Without Delay first. I didn't just write that code at the OPs request, It just happened to include an example of signal edge detection and using millis(), which is why I posted it.