I don't think I'd want to go near that endgame.
22 Rdf1 is enough to put me off.
Perhaps 20 ... Ke7 is the culprit. Maybe the boring 19 c3 Nxd4 20 Nxd4 Nc6 is better. 21 Bb1 (I haven't looked at 21 Kd2 or Kb1 carefully yet, though challenging on open the c-file might be enough to dissuade me from exchanging the second pair of knights) Nxd4 22 Rxd4 Bb5 looks okay for Black. With the King still on e8, the piece sacrifice I mentioned last night is also ruled out. So maybe I was tilting at windmills: this takes us back to where Ostap had us before I insisted that 18 ... Nec6 was a better move rather than just a mere transpositional one.
I suppose it showed White some different patterns along the way. None of them dangerous, apparently.
I've been looking for some time to put a knight on e4, but I can't see how it would work. The immediate 19 ... b5 20 Kb1 Nb7 21 f5 doesn't really appeal and neither does 19 ... Ke7 20 Nc2 (why not transfer the knight to e3 and prevent the exchange?) b5 21 Kb1 Nb7 22 Ne3 Nc5, which appears to favor White after 23 Bc2. There is 23 ... Na5 24 Nd4 Nc6 25 Rhe1 Nxd4 26 Nxd4 a5, but White is being far too accommodating (25 Rhg1 is much better).
So I guess I should play the simple:
1.e4 c6 2.d4 d5 3.e5 Bf5 4.Nc3 a6 5.Be3 Qc7 6.h4 h6 7.g4 Bd7 8.h5 e6 9.f4 c5 10.Nf3 cxd4 11.Qxd4 Nc6 12.Qb6 Qxb6 13.Bxb6 Bb4 14.0-0-0 Nge7 15.Ne2 Ba5 16.Bxa5 Nxa5 17.Ned4 Rc8 18.Bd3 Nec6 19.c3 Nxd4 20 Nxd4 Nc6(Again, assuming Willempie will choose to recapture, though you're most welcome not to
)
21 Nxc6 is not possible due to the peculiar 21 ... Bxc6, which threatens d5-d4 and at least an equal game for Black. Black's game is fairly straightforward (not easy, but straightforward). The king will come to e7, and the rooks will look for counterplay along the c-file while White tries to get his kingside going.