on atmel boards there is a so called “comparison register”, which does the exact same thing what you need:
// Timer0 is already used for millis() - we'll just interrupt somewhere
// in the middle and call the "Compare A" function below
OCR0A = 0xAF;
TIMSK0 |= _BV(OCIE0A);
in every millisecond runs a special function, indifferently what is doing in the code. its kind of time triggered interrupt. (works even in delays, etc).
this way one can do multitasking on arduino. actually it is very easy to setup. just take care that the runtime of the special function has to be extremely short, orhervise will crash.
for further info read this great article:
i do not know if something similar is implemented on esp8266, and how to use it. you have to find out.
or use the esp32, which is already dualcore, and on one core you can do whatever you want, and the other core handles blynk. @Lichtsignaal had some succesful experiments regarding this.
ps: i changed the topic category, because i do not consider this issue or error. it is how the blynk work. i think