Code hang at Blynk.begin(auth, wifi, ssid, pass);

Sounds like you have a networking issue… Blynk.begin() is a blocking command… the code stops there until it connects. This is normal.

You can alternately use Blynk.config() and pre-setup of WiFi if you need your sketch to work even without Blynk Server connection.