Depends on when you think you will be able to study for it...if you can handle studying for it during the year, then I would say take it April of your junior year, and retake in August before your senior year if you must......everything else you are doing sounds pretty good! Much luck to you!
My circumstances are similar to your's in that I'm graduating a year early. Yes, take the MCAT in April of your junior year. And make this the ONLY MCAT you take, but if its not you can retake the MCAT as early as August four months after you've bombed the April exam.
You'll submit your application the in the summer months after the april exam.
As an aside, I haven't decided yet whether being a year early has helped or hurt my application. I have three acceptances but many more rejections, and one interviewer said the biggest thing the adcom would want to know was why i was in such a big hurry to get through undergrad.