You have a lot of delays in your code… that will block all processing, including Blynk, and cause disconnections.
You already seem to have a basic understanding of timers (sort of ) However, you have a timer running a function every second, but then a 3+ second delay inside that function
, so I recommend a little more study on how timers work.
There are lots of examples and user made code with temperature controlled fans floating around this forum that will give you something to go through and study to learn how you can make yours even better.