First and easiest check that your model does not exceed the Triangle Limit
1) Freeze Transforms
2) Delete History
3) Select the joints that you want to influence the object. *I would suggest to err on the side of less joints.
4) Skin>bind skin> smooth bind option box,
here are my smooth bind settings
5) Bind Skin
6) Paint Weights (caution a lot of model rigs get messed up b/c of this. Its both maya's fault and the engines. I'll do another tutorial for painting weights game safe later)
Select Object export selection, FBX.
here are my FBX settings
click image to enlarge
Each object needs all 4 texture passes (masks link to mask guide)
The upload should be self explanatory
The only got-cha I found here is to change the name of the OUTPUT FILENAME everytime you make a change. I'm sure this will get fixed but for now, do it.
A little more info, every time you run the IMPORT it builds a new folder here:
~.\Steam\steamapps\common\dota 2 beta\content\dota
every time you change the name it makes a new folder. Other people like to delete these folders every time you have to do a rebuild and you can keep the name. Either works I think.
Lastly I want to say after all that, there are many got-cha's left hidden. And that's why there's a job called, some variation of, a Technical Artist (or sometimes just a Rigger) who's spends all their time learning and figuring out all the problems that can go wrong.