It is normal for spark timing to change when an automatic is not in Park or Neutral.
Yes, it is for the load on the engine when in gear.
Not sure what spec. is on warm engine 4cyl idle, above 900 seems high to me.
The 4cyls are higher RPM motors so have low torque under 800rpm, a 650rpm idle, like a V engine, would cause starting off issues, but 800-850 seems more reasonable in Park/Neutral, then maybe a bump up when in gear, +25-50rpm
Stalling out could be a couple of things.
Could be time to clean the IAC Valve, they can get sticking and not respond to computer instantly.
Turning key off and on opens IAC valve all the way so would unstick it.
Or could be TCC(torque converter control) solenoid is not responding to computer control.
TCC locks and unlocks the torque converter.
When coming to a stop it is unlocked so engine can idle, then when moving again it will lock which gives better MPG and power than the old, always unlocked, torque converters.
When coming to a stop if you see RPMs dropping more than normal and a bit of a lurch then TCC could be the problem, it is staying locked too long