On <21...e5>, what if White tries 22.xc6? Accepting the sacrifice with
22...xc6? 23.xc6+ c7 (not 23...b8?? 24.b7+ followed by xa6+ or c4+ etc.)
24.xc7+ xc7 25.xg4! hxg4 26.xh8
22...c5 threatens xf2# and forces the exchange of Queens, but this leaves White up a pawn with a safer king, and it doesn't seem to me like Black can compensate for this with active piece play.
Following 22...b8 White has a few choices:
A: 23.b3 followed up by
23...b5 24.axb6!? xf5 25.f3 e5 26.c3 for example;
B: 23.f3 defending the kingside;
C: 23.g2!? attempting to bring the h1 rook into play with
23...bxc6 24.b3+ followed by b6!? perhaps?