You have to understand how misfire detection is done to understand false misfire reporting by the PCM.
There is a very precisely timed electronic waveform coming from the crankshaft sensor that has been learned by the PCM. This is "learned" during a special mode that is triggered using a capable scanner during a specific full throttle procedure from idle through about 4000-5000 rpm. Every time a cylinder fires, the rotation of the crankshaft briefly accelerates. The PCM is able to compare these rotational pulses to the "calibration" stored in memory. Discrepancies in timing of the pulses are interpreted as a misfire on an individual cylinder, or if random it is recorded as a P0300. So if everything is within some factory specification, then no misfires are recorded and everyone is happy. This was implemented because true misfires will quickly damage catalytic converters and render them inoperable. The system is set up so that a true misfire is ALWAYS definitely detected.
However, other things can cause the original crank sensor calibration to no longer work correctly for this purpose and give you false misfires when they are not truly present.
- Changing or even disturbing the crankshaft sensor - very common
- Balance problems with harmonic balancer slipped, cracked flex plate, or faulty torque converter - not so common
- Pulses in the serpentine belt system caused by belt driven accessories - not so common
- Internal engine problems such as worn rod/main bearings causing strange waveforms - I had this very thing on the V6 in my 65,000 mile 2001 Blazer when I first bought it 6 years ago.
The 4.3's apparently had a problem with intake gaskets leaking coolant into the crankcase and ruining the bearings. Not bad enough to hammer initially when oil was not up to max temp, but a bad enough front main and thrust bearing to cause a lifter to collapse at idle after driving home 100 miles. However I soon found out that this problem kept the SES light on all of the time. Someone had removed the wire from the IC and placed a piece of tape over it. I was so thrilled after fixing the SES light. Talked to a lawyer and the main problem was to prove who actually did the disconnection - dealer or previous owner. I never pursued it. I figure it was the previous owner. This was a new car dealership that took it in on trade for a new vehicle and thought it was such a nice low-mile creampuff that they decided to not wholesale a 14 year old vehicle and to sell it themselves. They even put brand new tires on it. But I digress....
So let me ask you..... With 240K miles, what is your oil pressure at idle when completely warmed up for 1/2 hour. Any ticking or knocks? Have you been jacking with the crank sensor? Can you get the same repeatable CEL flashing at 3000 rpm with the drive belt removed. I'm betting bearings - but maybe not. I would certainly try to do a crank sensor relearn before tearing into the engine. The least expensive scanner I know of that will do the crank sensor relearn is the Vident I-link 400 at $150. I have one of these and it does all things pretty much on my 2004 Avy. Should do the same on 2007 too, but that is a different OBD2 communication protocol so might possibly be different. I have not verified it on the CAN protocol GM systems other than my 2006 Pontiac G6. Other than getting your own capable scanner, shops typically get $100+ to do a crank sensor relearn.
Good luck and best wishes for a successful repair.