Indeed, the Bradley-Terry model would be more suitable.
From https://en.wikipedia.org/wiki/Bradley–Terry_model
logit( p ) = Bi - Bj
I get a good fit for EGF game data with B( r ) = -6 * ln(3200-r) where r is rating expressed as GoR (with GoR 2100 = 1d and 100 GoR gaps between ranks / handicap stones).
A conversion between Elo and B would be
Elo( r ) = B ( r ) * 400 / ln(10) + C
C is an arbitrary constant. C = 9100 seems to give a fairly good match with Elo ratings from https://www.goratings.org/en/