Maybe this will help someone. I finally pinpointed the culprit behind an intermittent stalling, rough idle, lack of power situation. It would run perfectly smooth most of the time, until some random moment when it would start acting up (usually when giving someone a ride 😂🤦♂️).
It didn't set any codes for a while, but did eventually set E042: open spark timing communication circuit between the ICM and ECM. This caused the ignition to spark at a default 10 degree advance at all times, regardless of the situation.
Upon inspection of the ICM connector, I found all the female tangs wide open, in such a way that the pins would likely not be making contact, or contacting intermittently. Also, the screw had been tightened so tight that it split the connector in half and made a 1/8" impression in the plastic.
After splicing in a new connector, I noticed that it is very hard to tell when to stop turning the bolt. The way it's designed, it has no discernable stopping point because of the rubber gasket inside the ICM. This is a very poor design, in my opinion. I don't know what the solution is, except to count the bolt threads and the number of revolutions of the bolt as you're turning it, to make sure you get a good connection without breaking the connector.
There is a section in the service manual on how to remove the tangs from the original connector with a special tool, reform and reinsert them, if anyone is interested. It could very well clear up a driveability issue for you, without replacing any parts.
Photos showing how worn out the connector was, at only 21K miles: