Pretty much all computer controlled engines work the same, this is not Ford specific stuff, just FYI.
TPS output voltage reads OK, .7-1.0v is spec. 0.9v is optimal throttle close voltage, what you look for on this wire is a smooth voltage increase when throttle opens, no jumping around, and the same smooth voltage decrease as throttle is closed.
So TPS "looks" OK, check this voltage full range, .87 to 4.5-4.9, and make sure there is no jumping around.
5.07v is the power from the computer
.006v is the Ground wire
Computer uses the CKP(crank position) sensor to determine RPM, also spark and fuel injector timing, so this sensor is independent from TPS or IAC.
Warm engine target RPM is 700 for manual trans.
For some reason Computer is setting 1,000rpm, you know computer is doing it because when you unplugged IAC the rpm dropped, so it is not a bad IAC valve, it is being "told" to open more for higher idle.
The IAC's step motor could be "reading" pulses incorrectly but computer should turn on the CEL(check engine light) if that was happening
The 500rpm(without IAC) also tells you there is probably not a vacuum leak, probably.
3.0l maintains a high vacuum in the crankcase/valve cover area to reduce blow-by emissions, with engine idling unscrew oil filler cap and see what RPMs does?
The computer is setup to maintain about 1,000rpm "idle" until speedometer is below 5mph, this is to reduce emissions.
It is also programmed to hold RPMs high, on manual trans, when shifting gears, this increases MPG and reduces emissions.
But RPMs shouldn't jump up very high when clutch goes in, just stay high for a few seconds then drop to 1,000 until speed is below 5mph.
What is the cold engine idle like?
What RPM?
The computer uses an engine coolant temp(ECT) sensor to determine when to run engine rich with high idle(cold engine), and when to run engine lean 700rpm idle(warm engine).
This is a 2 wire sensor, similar looking to the 1 wire SENDER used for the dash board temp gauge
If engine is not warming up all the way, just below 1/2 on the gauge, or if ECT sensor is not reading temp correctly then computer may think engine is not warmed up so is keeping idle slightly higher, but this would usually turn on CEL.
One thing I would do is to reboot the computer, unhook battery for minimum 5 minutes, then hook it back up.
The computer "learns" sensor parameters, rebooting forces it to relearn current sensor incoming data.
Also clears old learned data, there could be a 1 where there should be a 0, and that is causing the issue, long shot but not a no shot
And just for future reference, anytime you change anything on the engine, you should unhook the battery before you start the work, yes it is for safety but it also reboots computer when you restart engine, so any changes will be seen by computer.
People often swap out sensors and parts without doing this and their problem doesn't change with new parts, this is because computer is still using the old sensors data for operation so new sensor is not "seen".