Play the game - don't overthink things. Don't play too much, 2-3 hours a day of TF2 should be more than enough over a decent period of time.
Watching your demos is one of the most important things. A good extension to this is knowing when to pick fights, knowing when to play the heal beam, etc. Good decision making is an important asset when playing any class. Talking with your team about your game is also a good idea; ask them what they think you should be doing. It may not necessarily be what you SHOULD be doing, but discussing your play with your team is extremely important so you are all on the same page. Working on avoiding damage (especially initial damage on rollouts) while still being in a position to be useful is probably one of the most useful assets, as you don't delay your critheal and can be aggressive earlier.
I would agree working on dm is probably a good idea, but you can just play pugs/ring for teams and eventually aim good that way.I guess if you can't readily get "decent" pugs or ring for some other teams/more scrims, then dm is the next best thing I suppose. dm'ing for more than an hour a day for me would make me want to stab myself, though, but that's by the by. There are plenty of people with good gamesense that I know/knew that were able to play in a way where their "weaker dm" was practically a non factor.
EDIT: I personally have never focused on "improving aim" in the time I have played TF2. I just played the game with the aim to have fun, thought about the game a lot, and watched a lot of my demos and other players. Just be confident in yourself and click on the other dude; you may miss sometimes, but fuck it at least you are trying. Confidence is the biggest factor in taking duels that may not favour you (e.g. low hp, no overheal, small/confined area vs soldier, etc)
EDIT2: fwiw sheep plays/played fuck all dm/mge, but he's a robot so I guess that's probably irrelevant