ADR - not what I expected

What SF was it using when doing that, and did TTN tell this specific node to make changes too? (SF9 to SF7 like the others you mentioned?)

If no changes are needed, or if no downlinks were available on which TTN could piggy-back the ADR settings, then the node won’t know if its uplinks even reached a gateway. In that case it will set ADRACKReq after a while (after 64 messages for LoRaWAN 1.0). So, this might be as expected.

That said, even without sending such ADRACKReq, a node that is on SF12 should be told to increase its data rate (assuming the link quality indicates it can do better): looking at the code I think TTN should force a downlink then. If you have access to a gateway: don’t you see any ADR downlinks in the gateway traffic (and the trace info such downlink) in TTN Console? Maybe the node is just not receiving the downlinks? And does it have the ADR bit set for all uplinks?