I'm (usually) a value shopper when it comes to vacations, whether they're cruises or something else. When you book a year out, you get to pick your room, but the pricing will be based on an "average" for similar cruises so it won't be the best value. If you book within a month or 2 of the cruise, you can get advantageous pricing that came up due to circumstances. As an example, in March, I got great pricing ~1 month out on an aft balcony on the NS that came up due to a cancelled dry dock for the NA that thus was cruising the exact same itinerary, departing 1 day earlier...so suddenly a lot of people moved their reservations to the NA from the NS, and lots of rooms were available.
A 2nd one, in 2019, I nabbed a 12-day Med cruise mid-summer on the Veendam departing from Venice that had a free kids offer right around final payment date...put 4 of us in an OV cabin, and had the least costly Med vacation imaginable, that was on an awesome ship that got into some smaller ports. Those OV cabins on the Veendam (which I had been in before) were actually quite spacious, and the stairway to the promenade deck made them feel almost like balcony cabins. It was absolutely worth the minor compromise to get a vacation of a lifetime and show my kids a bit of the world. I would happily book a room like that again (think that the Volendam has a similar design).
For regions like Alaska, the Med or the Caribbean, where there are literally hundreds of cruises by different cruise lines running near-identical itineraries, my strategy is to wait until after final payment, and choose one that was under-booked on any decent line for some reason and grab it. If it's a longer or more unique itinerary or you're targeting a specific ship, then that strategy would make less sense.
I would add - the difference in prices for nabbing an under-booked cruise are far more significant than the benefits of the early HIA promotion. That promotion is valuable only if you have specific dates or ports, and can't risk just taking whatever is a good deal.
As to flights...when booking a cruise, I'll have a 2nd browser window to look up air pricing at the same time as I'm investigating the cruises. You'd be surprised, but at about 2 months out, sometimes there's some cheap airfare to be had too. Value vacationing is all about optimizing the airfare and vacation pricing in combination, then pressing the "purchase" button on both within minutes of each other.