That behavior, VNAV switching off and going into ALT HOLD or even CWS PITCH, can happen when the VNAV "gets lost" and no longer can draw a vertical path from where it is to its End-of-Descent point.
The ways that can happen are various; a wise old instructor said that in these situations, "CRZ ALT is the root of all evil" in that the FMC often is working from a cruise altitude entry that no longer matches what the pilots are intending. And, very often I've found, the solution is to enter the current altitude (or the next level-off altitude if you're already in a descent) as the cruise altitude in the CRZ page, and then things are back to normal. That opportunity to re-cruise the box is also a good time to specify a cruise speed like 200 or 210 knots (something above the min clean "UP" speed bug on the airspeed display); that way, you don't have the automation wanted to speed up to 240 knots (the default cruise speed below 10,000') immediately followed by a slow-down to the UP speed as you get close to the start of the approach procedure.
When the aircraft does this shift into CWS Pitch, the ideal solution is to hit ALT HOLD, fix the CRZ page, and then reengage VNAV. This sequence avoids the risk that the aircraft may descend in LVL CHANGE or Vertical Speed modes down to an altitude you don't yet want (i.e. if the set altitude is below a step-down fix that's still in front of you).
Alternatively, if you're already in a descent when the VNAV disengages, immediately spin the altitude selector to whatever altitude you can descend to now (often, whatever's associated with the first fix on the approach procedure), and descend in Level Change or Vertical Speed while you fix the FMC. Then, once you're back in VNAV, be sure to select the lower altitude so that VNAV can descend once you've crossed that waypoint & its altitude is no longer your restriction. (If you forget to do this, you won't get CWS Pitch, but you will go into ALT HOLD and now you're high on the descent path... ask me how I know about that scenario!)
Without having watched everything that your FMC was doing in the moments leading up to the event you described, it's hard to say exactly how the FMC got lost when you executed the new route, but virtually always, that is the cause of the behavior you observed.
EDIT, added: One other note: I've found that when one is approaching an altitude constraint (like the 2,000' in the described scenario), switching into VNAV often doesn't produce the expected altitude capture there (based on an altitude constraint in the LEGS page) the way that pilots think it will. We expect the autopilot to capture the altitude in VNAV (with the LEGS page constraint) the same as it would in Level Change (with the altitude in the selector), but if you recently - in the last several seconds - just selected VNAV, it often doesn't. I don't know if the VNAV logic is less aggressive in that regard, and I don't believe that this is documented anywhere, but I've seen it enough times that the description in the OP of having to hit ALT HOLD to prevent busting the 2,000' restriction doesn't surprise me.
For those following along at home,
VNAV = "Vertical Navigation" where the Flight Management Computer (FMC) will determine and guide the aircraft on a vertical path from takeoff up to cruise altitude and thence through the vertical requirements of the arrival and approach.
VNAV PTH = "VNAV Path", the usual VNAV mode (at least during descents) where the computer is working to maintain an exact vertical path. This requires that the computer is able to compute such a path. The alternative to this (not mentioned in the question, but for the sake of understanding) is:
VNAV SPD = "VNAV Speed", the other VNAV mode, in which the computer isn't trying to follow a path but simply to hold a given speed. This is common in climb (get up to cruise altitude as quickly as possible), and can occur in descent too (though that's way, way beyond the scope of this answer).
CWS = Control Wheel Steering, the most basic autopilot mode, in which the pilot can make inputs via the control column, and the autopilot will then hold the attitude that has been set. The pitch and roll modes are separate, so you can be in CWS Pitch (you're controlling the pitch via control column inputs while the autopilot maintains lateral course) or CWS Roll (you control the roll and thus the left/right path, while the autopilot holds altitude or a constant climb/descent), or both (you're almost hand-flying the airplane, except that the autopilot holds the attitude you last set). These are "dumb" but stable modes, and the last reversion before the autopilot disengages completely.
CRZ ALT = the "Cruise Altitude" entry for the FMC. You've told the computer what altitude you'll cruise at. Often, this won't need to be reset from the 35,000' or whatever you flew enroute, but sometimes -- especially if the programmed approach is changed fairly late in the arrival -- resetting it can be necessary so the computer can recombobulate itself.
CRZ Page = a "page" of the FMC display where information about the cruise phase of flight is displayed, and where certain entries similarly related can be made.
LVL CHANGE = the "Level Change" autopilot mode, which directs the autopilot to hold the given speed, with the power at either full climb power (if climbing) or idle (if descending). Basically commands a constant airspeed climb or descent, getting to the set altitude as quickly as possible, with pitch controlling airspeed. The non-VNAV equivalent of VNAV Speed.
V/S = "Vertical Speed" autopilot mode, which sets a given rate of climb/descent (often, 1,000 feet per minute). This gives a more gradual change in altitude than Level Change, with a more shallow deck angle (which flight attendants pushing carts up & down the aisle appreciate).
ALT HOLD = "Altitude Hold", the autopilot mode in which the autopilot holds an altitude, either the altitude the aircraft was at when the ALT HOLD button was pressed, or what was set in the altitude selector if you reached it in LVL CHANGE or V/S. Operating in VNAV, you don't normally see this, as VNAV Patch includes level segments (i.e. the defined path includes an hour at 35,000' before starting the descent).
PF = “Pilot Flying.” Captains and First Officers will assume the role of flying or monitoring that sector.
PM = “Pilot Monitoring” - also previously referred to as “Pilot Not Flying.” “Monitoring” is a better word from a CRM sense as “not flying” gives the impression that this pilot is passive, whereas they are still a very active and important in the multi pilot operation.