I saw 16.Qg4 Bh6, but was not bright enough to find the follow-up move 17.Bc1! BxB, 18.RaxBc1.
20.b5? was not a strong move. 20.Qc2 (protecting the Bb2 and hitting h7 was stronger, more solid), and 20.Rxd was also better.
My new opponent, an older Hungarian gentleman, immediately played the game losing blunder 20…b6?? instead of 20…Qb6! because if 21.bxNc6 QxBb2, 22.c6xBd7 Qxd4+, 23. Kh1 Qd4xRc5. Always look for the threat-trails, this was something taught to me back when I was a 1400 level player, and look at me, still not correctly getting the job done on the board.