In March this year I did not do very well in MIA. I have a US visa, arrived on the BA flight from LHR and luckily had a 3 hour 45 min transit onto an AA flight to SJU. The machines were not working and queued for 2 hours to be seen at an immigration booth.
Going to the Caribbean I would def look at the direct flights, better still the EDI QR option sounds fab!