Speedo works. Speedo itself is off a bit above 50 due to wear, ECU speed is off by 7% (vs GPS speed) due to larger tires (need to change out the speed sensor gear ring at some point) but not enough to cause this. At any rate, the issue didn't track with the larger tires, it started about 7k miles after. At any rate, in neutral (e.g. when I depress the clutch pedal) the VSS is irrelevant -- further proven by the fact that I can stall it out by revving it while sitting still.
As for someone monkeying with the throttle plate screw: yes. It was me, this afternoon, because I had the same thought. TPS is fine, though I will go back and re-adjust with the info you've provided.
As mentioned above, IAC has been replaced; this was after failing the very test you suggested and the current unit is known good.
I chose to answer your questions and reply to your points BEFORE stating that I have a definitive diagnosis after my drive this evening, so that others might learn when what you've suggested (all of which was spot on, thank you for that) should and should not apply. Now, on to the diagnosis, and why I did not reach it sooner: Failed EGR vacuum solenoid.
After replacing the lifters, which I knew were collapsed and needed replaced regardless of any other issues, the stalling issue began; fuel trim issue predated that even. Working on both issues in parallel (I know, solve one at a time -- turns out I took the correct approach, though, as the two issues turned out to be related), I first checked for vac leaks, found a couple connections that were "questionable", and fixed those. LTFT 25% -> 23.4%.
I then tested the IAC valve, as that being stuck open could cause the high fuel trims at idle and being stuck closed could cause the stalling. Found it stuck open intermittently and replaced it. LTFT -> 21.8%.
Observes spark plugs in the dark to look for arcing, saw none, concluded they were at least all in one piece (this was incorrect, we'll observe shortly). Pulled them all to check gap and general condition, they were all light tan as they should be, none were wet, gap was off slightly on all plugs, but by the same amount; adjusted and reinstalled. No change in LTFT (none expected) or stalling issue.
Tested plug wires. All checked within spec.
Tested ignition coils. All 4 coil pairs (2 on each pack, 2 packs on this engine because waste spark) tested out of range, though primaries were all bang-on 1ohm. Replaced coil packs. No change in LTFT (none expected) or stalling issue.
HOWEVER: Old coil backs were providing weak spark. We'll get to that, because I screwed up pulling my wires and snapped two of them at the spark plug end. I attempted (and failed) to properly reattach the terminals and ended up replacing the wires. Again, no change... now, back to the coils.
With new coils and wires, I could see two plugs arcing through their ceramic insulators -- spark bright enough that I noticed it in daylight. Replaced plugs, no change.
Thus far everything I've replaced was *actually* faulty, simply not the cause of my problem; all of it would have been replaced within the next month or so *anyway*.
Pulled the DPFE sensor for inspection. The nipples the silicone tubing connected to were badly caked in yellow corrosion. Cleaned this off, reattached, LTFT -> 20.3%
Pulled the ERG valve for inspection and cleaning. Noted absence of gasket and proper function of valve. Installed new gasket, installed newly cleaned and tested valve. LTFT -> 17.8%
Given that servicing the EGR valve showed an improvement, I foolishly ruled out the EGR vacuum solenoid at this point.
On the suggestion of several BITOG members in this very thread, I inspected the PCV valve. Seemed okay but for $6 what the [censored]. Replaced it, LTFT 10.7% after idling for a few minutes. LTFT dropped to 9.4% while driving.
My expectation was to see an improvement if the PCV valve was the issue and no change if the issue was an injector. PCV valve confirmed as the issue... until:
On that same drive, as soon as the ECU called for the EGR valve to open, LTFT shot back up to 14.8%.
ECU called for 9% EGR, EGR error reported as 100%. Dirty EGR wasn't closing all the way and I had previously assumed my OBD reader was faulty (it is, but that's another issue altogether) and the EGR error values I was seeing were random garbage. Now that I had a properly closing EGR valve and an EGR error of 100%, it all made sense.
The EGR vacuum solenoid I previously ruled out is the culprit (as were several other issues I fixed -- I had a number of vac leaks here). Verified by:
1: Checking for vacuum at the line that plugs into the EGR valve while ECU was calling for EGR valve open: none present
2: Checking for vacuum at the nipple that line plugs into on the solenoid while ECU was calling for EGR valve open: none present
3: Checking for vacuum at the vacuum source that plugs into the solenoid: present
4: Checking for proper electrical signal to solenoid: present
There you have it, folks. My LTFT was trending toward 0 and had entered the acceptable +- 10% range, then the ECU called for EGR and everything went to [censored].
It was rush hour, so I didn't take it on the freeway to test whether the stalling issue was still present at speed, but did confirm it is gone when revving while stopped, even at 14.8% positive fuel trim. Not even a shimmy from it.
Since my fuel trim only hits that level at idle while hot and I don't leave the truck idling (except for diagnostic purposes, as required) I may or may not fix this immediately. It depends if the stalling issue persists next time I take it on the freeway.
At the end of the day, it's really no danger to the cat since I don't idle the truck. The stalling issue was my real concern once I got initial (cold) LTFT in range.
Thank you to everyone who posted; I'm calling this one resolved, for the moment.