According to Nalimov, the position after 39. ... fxg4+ is a draw no matter what white's next move. However, after 41. ... Rf5??, white has mate in fourteen with 42. h5! Rxh5 (42. ... Kf6? 43. Ra6+ Ke5 44. Ra5+ wins the rook and keeps the pawn.) 43. Rxh5. 42. Ra6+?? unfortunately returns the position to being drawn, and it remains until black resigns.
So you are correct that the endgame is drawn at least after 39. ... fxg4, and that black should not have resigned, but there was a tactic you missed in there.
I cannot comment with certainty on the position after 29. ... Rxc3, but I would guess that it is probably drawn unless you can force black to exchange his f pawn for your g pawn.

Below is a game I recently played (white to move in diagram). I think from this position it's a win for white, but I ended up with just one pawn on the h file. I think that's a draw, but fortunately(?) for me Black resigned. So, two questions:
1) Is R+P on h-file vs. R a draw?
2) Is this position a forced win for white?