On July 4th - acknowledging this is a slower day in the airports - we took the direct flight from Tortola with a 2 hour layover in Miami coming home. We went through customs using the Mobile Passport Control App (since my wife and 2 daughters hadn’t completed their Global Entry interviews), and had time for them to complete their Global Entry interviews (using the on-arrival process), collect bags, go through security, and spend an hour eating.
Overall, we prefer Miami because there seem to be more options if something goes wrong with our flight.