Are you still looking for answers? If not, what did you decide?
if so, here's my $.02.
I would not hand off a project to any outsourced team to do, as in 'build this widget for me'. This is kissing your money goodbye.
I would use contractors to augment your in-house team. Use an agile process (like scrum) and get them working as a part of your in-house team, participating in daily meetings, adjusting their schedule to increase time zone overlaps. You can use video conferencing tools (Skype, join.me, et al.) to improve communications and develop rapport with them. If possible, have them come to the US for a week or two and work on-site - this is invaluable if you can do it.
You will absolutely need someone in-house to own the work and lead the team - could be a product owner, or a dev manager - but you absolutely need to be leading from an in-house person. Allowing your leadership to be outsourced is a very dangerous position, as they can definitely leave you empty-handed. Especially if you are developing critical IP.
WRT location, I have used contractors in Mexico, Romania, and China. I highly recommend Romania - the quality of engineers is very high, their english skills are good, and you can get many hours of timezone overlap (we had 6 hours here in Atlanta). The problems with China (and India) have been stated - the timezone difference is a challenge to manage around. Now I am hearing about good engineering solutions coming out of Brazil. Anything in Latin America will be good from a timezone perspective.