Correct me if I'm getting any of this wrong.
We are dealing with a 2 cycle direct injection engine.
That means no misadjusted carbs but it could be bad or dirty injectors
The problem has be around for a while.
You said it happened in Puget Sound and in the Utah mountains. We won't be able to tie this to anything that changed in the engine.
You have seen it at sea level and at altitude.
We can eliminate programming or tuning for high altitude use. (I was really hoping this was the problem

)
Below around 4000rpm it works
Above around 4000rpm it stumbles and dies.
This could be lots of things. More below.
The plugs and air pump have been recently replaced.
Did the mechanic do this to fix the problem or was this just periodic maintenance?
The water pump impeller has been recently replaced.
Good to know but absent an overheating condition it probably can't affect engine speed.
You don't have anything unusual in your fuel tanks/lines like multiple tank selector valves, in-line fuel/water separator, in line fuel filters.
For troubleshooting purposes I'm assuming a portable tank with a flexible fuel line with a squeeze ball in the middle. If you have something more complicated then more things will need to be checked.
Back to the RPM issue. Lots of things can cause this. Most of them have been mentioned before but let's look at root causes. I can think of four things that can cause an engine to stumble or stall above a certain RPM.
Lack or excess of fuel.
Fuel lines blocked or sucking air at any connections. Squeeze bulb malfunctioning. Pickup in fuel tank blocked. Tank vent not working or closed. Fuel pump. Fuel filter/separator. Clogged or malfunctioning injector(s).
Lack or excess of air.
Dirty air filter. Air entering the fuel line at any point. Air pump (don't know this engine but I assume this is some type of mild turbocharger). Air flow sensor (present in most injected engines). Air entering the intake manifold anywhere it's not supposed to.
Weak or incorrectly timed spark.
Plugs bad, dirty, incorrect, or improperly gapped. Bad coil(s). Ignition timing off (sensor or ECM problem). Plug wires.
Engine protecting itself due to a real or imagined fault condition.
Any sensor that could put the engine into "limp home" mode. Oil pressure/volume/temperature, water temperature, 2 cycle oil level. I'm just guessing what your engine might be looking for.
That's what I can think of off the top of my head. I'm sure others will think of other things to check. I recommend checking on any work that you "farmed out". People make mistakes. You may not have the right plugs or they may be gapped wrong. Either one could cause the problem you describe all by themselves. Take the plugs out and look for soot or oil deposits. Look for anything that looks out of place or odd. A single vacuum line could also be the culprit.
If I were troubleshooting my own engine I'd do it in this order.
Verify that the right plug is in the engine.
Look for any problems with the plug wires.
Remove the plug and check gap and condition (soot, oil, etc.)
Check air filter. Follow the path the air will take looking for anything loose or cracked.
Operate the throttle and observe the movement of anything that controls the air flow.
Check the fuel filter/separator. Is it clean? Is there any water in it? Check your manual, there may be more than one.
Check all fuel lines paying particular attention to all fittings. The lines are under vacuum while the engine is running, not pressure so they are more likely to suck air than they are to leak while the engine is running.
Pump up the squeeze ball. Does it stay hard? Do you see any fuel leaking anywhere? You can usually follow the fuel line running from the back of the connector on the engine to the fuel pump. Don't forget to look there too. Do you smell any fuel?
Check the fuel tank vent.
If possible:
Access the fuel pickup in your tank. This will probably require partially disassembling your tank. If it is rubber, make sure it is not swollen, cracked, or deteriorating in any way.
Check any filters in the tank.
I'm sure I've missed some obvious things to check but it's getting late and my brain just shut down. Go slow. Be methodical. Don't take anything for granted. Good luck and let us know what you find.