Nice work.
Thinking of how you treated multiplayer ELO as a ranking between players in a match (besides ELO being a ranking between multiple players itself), I wonder two thing:
1) wouldn't it be better to rephrase the very expected score formula from being "probability of A winning over B" to "probability of A ranking higher than B"? It makes more sense to me and steers always from "winning" to "ranked better"
2) Considering poker, which has multiple rounds within one game, you could compute ELO updates for each round (using a smaller K). This way you would measure the average win rate within a game rather than across multiple games.