@engine thanks for looking at the code (I was doing the same..)
Indeed.
No.
That comes from the next normal request being processed for the next zone.
Actually I think the issue is probably the accessTokenRefreshListeners.forEach(l -> l.onAccessTokenResponse(accessTokenResponse)) callback to the tado binding; this causes an immediate online status refresh, which causes another API call, which causes another request to getAccessTokenResponse() ad infinitum.
So there is a new Jar where I break that loop from within the binding – you can download the Jar for test purposes here..