First of all, cut the number of guests. The standard recommendation is one child per year of age plus one (so for a one year old - that is only 2 other children). This party is only for you - chances are he will not enjoy it and he will certainly not remember it. Keep in mind it is a first birthday - not a wedding!
Second, as others said, schedule around his nap time.
Third, at that age 90 minutes to 2 hours will be more than enough. He will be tired and completely overstimulated by the end of that - no need to go for 3 hours. Keep in mind that even when you put "2-4" in the invite - there will be people that arrive at 2:30 and stay long past 4. You might want to plan on having someone (Daddy, Grandma, trusted friend) make an announcement about 15 min before you want to end that your son is going to go for his nap - that can help get people to leave! If you are doing the party somewhere other than your house - then you leave with baby at that point or send baby home with someone (Daddy, Grandma, babysitter).
I would save your $$ until he is older and only invite a few friends. Put the rest of the $$ into a college savings account for him and you will all be happier and less stressed!
Cheers,
C.