Delay.... but not delay, so network aRest commands can come

First of all:
I will write bolded in bigger letters but the meaning of this

bolded big letters

is not meant as shouting - just as emphasising

All you users out there if you find it too much reading so many big bolded letters
question your habits!
You are in a similar situation as a newcomer with the habit
of slow-looping more sequential code-execution. uh ! what is this !?!?!?

And this is

normal

And I want to explain why:

This example-code of blink without delay() is an example
without emphasising on the fundamental difference how this code works.
And 95% of the difficulties come from

not

explaining this difference.
As long as you try to see a delay()-similar thing in the BWD-code
you almost

must

fail!

because it really really works different!

The fundamental difference in very short words (still not explaining it all) is
delay() is executed a single time by blocking all code-execution

non-blocking timing based on function millis() is a very often

repeated

compairing of how much time has passed by including
fully intended hundreds_of_thousand-times looping through the code

I wrote a tutorial about this with an everyday example that a lot of people are familiar with
Whatever questions you have about this tutorial I'm very interested in infinite improving this
tutorial to make it easier to understand for newcomers.

best regards Stefan