In the case of an action managed upgrade, the action that performs the upgrade reconfigures the source, not the config-changed hook (so that's expected behaviour).
You're correct in that you do need to step through:
xenial/mitaka -> xenial/newton -> xenial/ocata -> xenial/pike -> xenial/queens
A direct jump from mitaka -> queens won't work.
In the case of an action managed upgrade, the action that performs the upgrade reconfigures the source, not the config-changed hook (so that's expected behaviour).
You're correct in that you do need to step through:
xenial/mitaka -> xenial/newton -> xenial/ocata -> xenial/pike -> xenial/queens
A direct jump from mitaka -> queens won't work.