Enabling ADR in a node does not require the use of confirmed uplinks at user level, the user can continue to use simple unconfirmed uplinks.
At MAC level, every 64+32 uplinks there will be at least one downlink needed for the ADR algorithm. (this downlink can be piggybacked with user downlinks)
The Network Server should send a downlink every 64 uplinks, but can anticipate the downlink to make the algorithm more real time. If the Network Server delays the downlink more than 64+32 uplinks, the ADR algorithm will fail.
And yes, ADR algoritm wastes a lot of downlink / duty-cycle recourses in the gateway. This is a real problem and LoRaWAN 1.1 will fix it allowing the ADR_ACK_DELAY values to be modificable, not fixed to 64+32.