This is because ManagedChannelImpl's exitIdleMode() does not call channelStateManager.gotoState(CONNECTING);. When exiting idle mode, the next state transition is in LbHelperImpl.updateBalancingState(), which is after the NR has returned its initial results.
This generally doesn't matter much because RPCs behave similarly for IDLE and CONNECTING. But it would be confusing when using the getState() API, like the user at https://stackoverflow.com/questions/76950718/after-the-channel-is-created-it-takes-1000ms-to-transition-from-idel-state-to .