I had about the same thing happen many times for different reasons. First time it was a partially bad ballast resistor. Second time it was my O2 sensor wires cooking on the exhaust manifold in the front. They were almost impossible to see, I had to unplug the harness (O2, knock sensor, engine temp. sensor) unbolt the hold down and pull the harness up to see the bad spot. I removed the power steering pump and rerouted the harness. The third time my O2 sensor partially failed, old age likely.
Also another time my CPS was going south and my top end suffered as the CPS heated up. It worked fine cold.
Cutting out at 2000+ RPM sounds like a fuel problem, either the fuel system itself or engine management, O2 or TPS, MAP etc.
Weak spark will also do this, the higher the RPM's the worse the miss gets, it acts like a limiter. Usually a supply voltage issue, a coil to ignition module connector issue or even leaky (or really high resistance) spark plug or coil cables. Weak spark usually makes for a noticeable idle miss and gets worse at higher RPM's.
I had this happen another time, I had a bad crispy connector between the ballast resistor and the fuel pump. The pressure was OK at idle but as the connector heated up and the fuel demand grew I'd run out of fuel. This one really drove me nuts, all the voltage checks were fine, fuel pressure and volumn were fine at idle. It only caused grief at higher RPM's. I finally figured it out after driving around with a fuel pressure Gage taped to my windshield wiper and watching the pressure on the interstate. There are like five connectors between the fuel pump relay and the fue pump on the Renix, the fuel pump wire even changes colors once, then back again. I jumped them all, solder and shrink tubing. Now my fuel pump harness is one compete run with fewer connectors.
Just some ideas, if it were easy it would already be fixed,
A quick test, check the volts at the larger yellow wire at the ignition module (to battery ground), usually a little line loss, like a volt or two. Volt test the coil at the test point, should be exactly the same voltage as the large yellow wire, if not remove the coil and check the connectors, they heat up and get soft, then make poor connection.
Check your voltage at the ballast resistor with the motor running, one end will be within a volt or two (around 12-12.5) of battery voltage (13.7-14) there is some line loss (normal voltage loss), the other end of the ballast resistor a few volts less (after passing through the resistor). Then check the voltage again at the pump. It should be the same as the ballast resistor lower voltage. Or just jump the ballast resistor wires and forget the ballast resistor. Swap out the fuel pump relay and look in the relay socket (with a flashlight) for obvious signs of over heating, like blue/black spade connectors. The spade connectors get hot, discolor then relax (the spring is gone) and make poor contact.
Every time a hot wire or a ground goes through a connector, a contact or a relay it losses a little. The worse the connection the more the loss, it adds up. It can eventually make a big difference. Especially in the sensor circuits, were the voltage is sometime a decimal point of one volt and most always less than 5 volts (sometimes 7 volts depending on year).