Rookie uses London System, Wins

Stop knight jumps to b4 by playing c3 and the bishop belongs on e2 when black plays kingside fianchetto systems.

Why do you hate doubling pawns and opening files? You get an extra center pawn for free. A pawn on d3 would support an e4 push. Clearing your pawn off the c-file would open the file for your rook while your opponent has no open files. Plus, your knight was good on e5.
Instead of 22. Nxc4:
22. bxc4
i) 22. ... Qb4 23. Nxa6 bxa6 24. Nc6 forking the queen and rook.
ii) 22. ... Qb2 23. Re2 Qc3 24. Rc2

I find it weird how you did 22. Nxc4 then Nxa6 followed..
why not 22. bxc4 then Nxa6 to double his pawns and have a better position

I'm confident 11.cxd3 was better than 11.Nxd3. Doubled pawns can certainly be weakensses and cause problems for your endgame... but don't make avoiding doubled pawns your religion! There are times when they offer more good than bad, I think this was one of those times: to me cxd3 strengthens your hold on e4 and it opens the c-file for you to attack his Queenside, which is what your pieces are positioned to do.
18.b4 would have caused him some problems. Your threat is b5 winning his bishop, how does he stop it? 18...Bc4?! Nxb7 winning a pawn and the exchange. 18..b5 doesn't work, 19.Nxa6 And 18...c6 leads to that fork again -- 19.b5 cb 20.ab Bxb5 21.Nxb7
Your queen trap idea was ambitious, but I don't think it's really there. That said, he played against it poorly and got himself into trouble, so it worked for you.
Good job activating and centralizing your king after the Queens were exchanged, that was exactly right.
39....Bxd4?! whoa... the 1600 computer plays a fun but dubious sac.
I think 41.Rb1 turned out to be correct for the very reason you gave... where's the fail?
But your whole plan of attacking a7 and promoting your a-pawn, rather than tying your pieces down defending against his passed pawns was IMHO great. It's really not so easy to see that is the correct way to play. You showed great instincts.
Well played!