Not being an IMG, I don't have specific advice on when to take the Step 2. I agree w/the advice in the post above though that if you are afraid about getting enough interviews, then apply to a lot of programs, and leave out the top tier ones (except one or two "dream schools" if you want to try for them). As a US citizen, particularly if you rotated at US hospitals during 3rd/4th years, I would think there should definitely be a place for you somewhere in IM, provided you don't fail the Step 2 exams and there's nothing bad in your transcript or LOR's (like personality issues during your clerkships, etc.).
I think the #1 most important thing is not to fail the Step 2, so if you are so nervous about it that you think you might fail, IMHO it would be better to take it a bit later and make sure you pass and hopefully get a decent score. How late you can get away with taking it (and still have it "count" in the selection process) I don't really know. Most IM interview invites go out in November and December, I think, so if they don't have your score by then it might not get used for interview selection. Personally, I took my Step 2 in december, wanting it to count for ranking in case I did better than on my step 1, but not really "needing" the Step 2 score to get interviews, I didn't think. My experience with the Step exams was that studying definitely helped me raise my scores..I got 220's on Step 1 after probably not studying enough, and 240's on step 2/3 after studying more. I do think that more study time does tend to raise the score for most people, but I guess in your situation you have a lot of factors to balance here.