I think you are right.
Your 15th move isn't the best although it's 17... Qc6? that seals the deal. After 17... Qe7 (bringing the kngight back to e7 may or maynot be even better) the situation doesn't look that bad. Black will be few pawns down but there's definite compensation.
15... g6 you suggest is not a bad move but seeing how passive white is (it isn't apparent how he can activate Rh1) you might also want to examine more active alternatives. You must find way to bring your reserves into the attack and one idea to do that might be 15... c6 planning Qc7+0-0-0. Say 15... c6 16. Nc3 (16. Qh5+ g6 17. Qxh7 Be6! and white can't take the bishop due to the weak back rank) Qc7 17. Qh5+ g6 18. Qxh7 Bf2+ 19. Kf1 Bxe3+.
Another interesting idea is 15... Be6!? when 16. Qxd8+? Rxd8 17. Bxe6? is clearly impossible due to 17... Rd1# and 17. Be2 Bc4! 18. Rh3 Rd1+!! 19. Bxd1 Rf1# is no better but white can try 16. Be2/Bb3.
Pretty sure I could have won this.. but lost :(