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?