A.H.
3 hours MAX. 2 hours is normal for your age group. I've never seen presents opened at a kid's birthday party, and I wouldn't advise it either. First of all, it takes away from the actual party itself; second of all, the other kids are going to want to play with the new toys; and lastly, at this age, kids can be less than gracious about presents they don't like, and you might really hurt some little kid's feelings if your child does not like what he/she gave as a gift.
And you should sent the invite out approx 4-5 weeks in advance. sorry mammaholly, but 2 weeks is NOT enough notice - unless they have nothing else going on in their lives, people need to coordinate schedules (especially if they have more than one child), and buy a present for the child. You'll get a lot of NO's if you give anything less than 3 weeks notice. Have a great party!