Try to change your flight to the previous day or before then, the cost of a hotel room and transfers, will be far cheaper than finding another flight home. I don't think your insurers would be happy that you took such a risk. In any case, at least another day in New York, will leave you more relaxed to enjoy the start of the crossing without worrying about missing the cruise.
If you have booked as a package it would be the tour operators problem to sort out, but considering their solution is usually to fly you to the next port of call this is not a great deal of help. Having experienced US immigration and embarkation (chaotic and disorganised to say the least) I would strongly recommend you follow the previous writers advice and try to go out a day or so earlier.
I am amazed to hear that anyone would arrange to arrive in america only four hours before the ship sails.
i haave on occassion taken three hours to get through american immigration.
all the answers to this question are apt.
wake up and smell the coffee.
time and tide and qm2 wait for nobody.
alter your plans.
If a large number of people on the flight are cunard passengers then the ship will hold, if its realistic for the ship to still reach its first port of call. I have been held in a 'home' port such as this for 6 hours and we still got to our first port of call on time. But that is a tight schedule and doesn't allow for much of a delay anywhere.