вполне реально в интерцепторе разрулить на потоках
пробовал - муть получалась
пробовал в retryWhen возвращать входной аргумент, который observable, потом свитчить его на другой observable в который прилетает обновленный токен, далее фильтром отлавливаю, когда таки новый токен прилетает, далее в следующем свитче получаю токен и возвращаю уже изначальный реквест с обновленным хидером, и получается что сам ретрай делает реквест со старым токеном, потом запускаются те реквесты, которые я вернул -_-
как-то иначе я хз как можно токен прилепить в хидер, особенно в ретрае :(