My suggestion is not execute Serial.println and Blynk.notify inside an interrupt function (timer). do only necessary, turn-on some flag and do these things in loop().
Another suggestion: put a delay(500) on loop. You are saturating TCP connection.
BAD suggestion… any process blocking code in the void loop() is particularly bad with Blynk style programming. This is mentioned repeatedly in the Help Center documents and forum posts.
@yaujiet Stick with using timers and timed functions, they are non-blocking.