I made the same type of mistake in this game as in my last loss against Aleksandr. Once I sensed I was getting low on time, I played 22….h5? based on the looks of the position, and missed that he was getting 23.Nc3 in “a la tempo” or, as a free tempo. So, I should have played 22…Rad8 first, and if he plays 23.Nc3, then I will not play ….h5. It makes me think of the Monty Python skit “Nobody expects the Spanish Inquistition!”
24…Kh8 looks bad, but if 24…Bh6, he has 25.Bg5 Rf7, and he played 26.Bh4! post-mortem here, and won with Ng5+ trading knight for bishop, where it surprised me how devastating the bishop-pair was here when one would think this should be a “knight position”. Quick note is that if I push …d5 at any point, he can give me four pawn islands and easily won post-mortem that way as well. He can also play 26.a4 here, and if …Bf5, then he could play 27.Nc3 or simply 27.a5, and my pieces are all still jumbled up, where it will be difficult to defend against his rook pair as in the game.
30….Bh6?? Loses, but a slow loss appears as 30…Bf8 (which I did consider), but then that other rook is still getting to a6 and I will lose the pawn on c5 or d6 at some point, and then I have weak pawn islands on same rank.
This is how Paul A. wins his games, it’s very technical. He says that I am great with time, but have terrible instincts when I don’t have enough time to spend on a move. I will say that defense is more exhausting than attack.