Establish wifi connection "in background"

I believe that while connecting to wifi/Blynk blocking in inevitable. You can lessen this time by adding a timeout to the Blynk.connect(); function, but it will still block for that period none the less.

You may be able to use an ESP32, and utilize its dual cores. Separating the critical control commands, and the wifi/blynk connection stuff.

You may also try increasing the interval in which it tries to reconnect to the wifi, say every 30 seconds to 1 minute, instead of every 5 seconds.