That was pretty nice. My only complaint with the sac was that there wasn't really any imperative for black to capture the rook on f6 immediately, or react to it at all. The rook on f6 looks dangerous, but wasn't threatening anything. Black should have taken the time to organize a defence or an escape route for his king, after which the idea of capturing white's f6 rook with the g pawn would actually become a serious threat for white, forcing him to move the rook once again.
Moreover, black should have taken the bishop after 20.Bxh6 with 20.gxh6. If white responds 21.Qxh6, black can respond 21.Qb6+ then 22.nxd5, which allows the black queen to help defend the vulnerable king (or the queens would be traded off, which would benefit the defender). In the end, black would have been able to recoverfrom the material deficit he suffered from the opening, though his position still looks worse.
Ok I'm sure there were many refutations to this sacrifice. But this is probably the first time I have found something like this, and considering my opponent was in time trouble it was probably best. What are your esteemed thoughts?