After 9.d5?! if he played Na5, you would have to move your bishop to either d3 or e2 squares. You generally want to avoid trading off a bishop for a knight at this stage as the position is open.
Your sacrifice is in fact a blunder. 14. Ng5?? gives away the knight for no compensation. You should have a look at your pieces. Unless there is an immediate danger if he takes your piece you should avoid sacrificing and build the pressure slowly. Patience is required in these positions.
Say he took the Knight, You take with your bishop and he castles. He has an open f-file and is winning comfortably. His 14th move is hence, a mistake
Your fifteenth move is excellent. Your knight is in a solid position,supported by your pawn and your opponent will have great difficulty removing it. 16... h5 is wrong as it weakens his position even more. 18. Qxf6 was the correct move . You should not worry too much about your d5 pawn when you can end the game soon.
No but seriously, please point out any flaws in my reasoning, give me black attacking lines that would have lead to my demise, and feel free to include diagrams as that makes it much easier for me (I'm not that comfortable with algebraic notation yet, it still takes me some time to visualize the board, so diagram really helps). If you would have had another way of playing it out as white, I'd much appreciate to hear it.