In Park or Neutral computer engages a REV Limiter, it kicks in just above 3,000 RPMs, so your cutting out at 3,200-3,300 is normal and correct.
Rough idle can be a few things.
Dirty fuel injectors, run a can of Seafoam in the gas tank once a year.
Failing coil pack, usually you would get a p030x code, and the x would be 1 to 6, not 0
Check coil pack spark plug connections, they can get corroded from arcing so even with new wires problem still exists.
Dirty MAF sensor, clean it
Small vacuum leak, this leans out idle mixture, so rough idle but engine should be fine when above idle RPMs, computer uses O2 sensors then.
If idle is better cold, less misfires, then vacuum leak could be the issue
Worst case is recessed valve seats, this was an issue with the 3.0l in the early-mid 2000's, but I think it was '04-'06.
If possible do a compression test, that's the only way to test for that
Computer has 2 "modes"
Open Loop is when computer is using Factory data in memory to operate the engine.
It does this when engine is cold, because O2 sensors don't work until they are above 650degF.
Closed Loop is when computer can use all the sensors to operate engine at best efficiency, best MPG, so it doesn't use Factory data.
Limp home covers a few things but rough idle wouldn't be one of them.
If computer is getting data from a sensor that is out of its normal range it will switch back to Factory data, this will usually cause a loss of power, but you can "limp home".
This is in essence Open Loop, so engine will run OK just not great.
Transmission limp home doesn't effect engine operation, computer sees one of the transmission sensor that is out of range so it switches to factory preset shifting, so you can limp home