Cardiology is competitive everywhere, big or small programs. Our program is not well known and had >500 apps for 3 positions last year.
Going to the best IM program you can is good advice. Definately a University based IM program. Would start research ASAP. Getting published will help tons... (not just abstracts or posters, but a manuscript). Cardiology is a very evidence based area and research is very encouraged. My advice to interns or residents is always to start research early. 3rd year of MS is not too early to be starting research. Get in touch with a CV fellow or staff and help them with a project.
Knowing someone always helps, but simply getting excellent letters of recommendation can get you interviews. Be careful when soliciting letters... Be sure to get excellent letters and don't be afraid to ask if the recommender feels comfortable writing you an EXCELLENT letter of recommendation. A mediocre or even fair letter can be the kiss of death. Also, most residents who've been through the application process know which attendings will write and know how to write a strong letter (get letters from these people).
There have been carribean grads and DO's in our program, so it's not impossible. US MD's are favored, however. Excelling after med school is the great equalizer for IMG's and DO's. I'm a DO and went to a mid-sized IM program, was asked to do the Chief year (which strengthened my CV application considerably) and started CV Fellowship the next year. Also gave me time to get some manuscripts published...
Good luck...