I’m not really sure what your code does, but it looks like it could be a lot of stuff.
You could try seperating the Blynk process and everything else by making use of the two cores the ESP32 has to offer you. There is very quick example here: Three LEDs with Dirty Delay (ESP32) on how to run tow void loops at the same time. Maybe it will be more stable if you assign Blynk it’s own core.
Word of caution: I have absolutely no idea how this works with the sleep mode of the ESP32. It could be bugged for all I know