All of those things are interconnected but which one is causing another item to react, or vice versa may be a head scratcher. The timing table is based on load and rpm but it is fairly coarse so the timing should be stable at idle or any fixed rpm and load without any real deviation. The rpm signal comes from the ICM too, so an unstable rpm will make the timing react, sort of self propagating.