What if you maintain a permanent Elo which remains hidden but is still used for computing seasonal scores of your opponents. My thought is if someone knows I'm a 2000+ player in a game but am ranked 1500, they won't want to play me because they expect to lose substantial Elo points for the current season.
So what you do is have n+1 Elo calculations for each game, where n is number of players. So the 1st n calculations, one for each participant, use the kth participants season Elo and everyone else's permanent Elo, and are used to update the season Elo of the kth participant. Then the +1 calculation uses all the permanent Elo to update those player's permanent Elo.
So say we have 2 players whose current Elo's are both 2000...but a new season starts and they are both 1500. So for each individual in the season ratings, their Elo would be computed as if they were 1500 and opponent was 2000. For the permanent Elo both would be 2000. Again permanent Elo wouldn't be displayed, or at least not awarded, so people would not be as protective of it. So permanent Elo remains a zero sum game (minus K-factor and leave penalties, though without award permanent Elo shouldn't incur a penalty for leaving above the loss, only season Elo should incur a leave penalty), while season Elo would not need to be zero sum as playing opponent's who are better in real terms than their season rating indicate would provide a larger benefit. This could at least help compensate for the fact that a season is likely not going to be long enough for people to reach their true ratings, as you at least get awarded for beating people at their true ratings. And, anyway you decouple prestige and permanent Elo should prevent people from protecting their ratings and actually lead to more accurate permanent Elo.
Also, this allows you to use different K-values for season versus permanent, as you could make season more volatile and permanent less. For permanent could add extra levels of K-values (like if >100 games, K=15)
So what you do is have n+1 Elo calculations for each game, where n is number of players. So the 1st n calculations, one for each participant, use the kth participants season Elo and everyone else's permanent Elo, and are used to update the season Elo of the kth participant. Then the +1 calculation uses all the permanent Elo to update those player's permanent Elo.
So say we have 2 players whose current Elo's are both 2000...but a new season starts and they are both 1500. So for each individual in the season ratings, their Elo would be computed as if they were 1500 and opponent was 2000. For the permanent Elo both would be 2000. Again permanent Elo wouldn't be displayed, or at least not awarded, so people would not be as protective of it. So permanent Elo remains a zero sum game (minus K-factor and leave penalties, though without award permanent Elo shouldn't incur a penalty for leaving above the loss, only season Elo should incur a leave penalty), while season Elo would not need to be zero sum as playing opponent's who are better in real terms than their season rating indicate would provide a larger benefit. This could at least help compensate for the fact that a season is likely not going to be long enough for people to reach their true ratings, as you at least get awarded for beating people at their true ratings. And, anyway you decouple prestige and permanent Elo should prevent people from protecting their ratings and actually lead to more accurate permanent Elo.
Also, this allows you to use different K-values for season versus permanent, as you could make season more volatile and permanent less. For permanent could add extra levels of K-values (like if >100 games, K=15)