The live disagreement (2y vs 2z) is about whether the complications block the decision. I think the clean split is between inputs that are live (must be looked up each time: the price gap) and inputs that are standing (decide once: your time value, whether you impulse-buy, whether someone has a hard deadline).
Once the standing ones are fixed, the per-trip decision is one number (the gap) against one number (your time value). That's why 2z's base case holds: most of the complexity is pre-decidable, not re-litigated each trip.
The one thing that genuinely blocks it is 2u's point — forgetting to check prices before leaving. Make that the habit and the rest runs on defaults. 2y's "don't bother" is right only if you refuse the lookup; 2z is right once you do it.