See this topic:
It may have something to do with this line of code:
bool result = Blynk.connect(5);
From what I gather you will be blocked from doing anything while the device is trying to connect to the BLYNK server. It is figuring out how often the device should try, and for how long that will need to be adjusted to your needs. Maybe try giving the default a try and see if that improves it any.
bool result = Blynk.connect();
or
bool result = Blynk.connect(500);