My main question is at what point in elo differences do you think the probablity of a player winning is about zero? Do you think 400-500 rating gap is enough. I could imagine a person having a tiny chance of beating someone 300 rating higher.

It depends on the rank of the players in question. I think glicko calls it volatility - the weaker you are the less consistent your play will be; hence the difference needed to guarantee a win is larger. The EGF uses a system that also factors in volatilaty called GoR, in that system a 20 kyu has a 7.6% chance to beat someone with a rating 500 points higher, while a 7 dan has an 0.1% chance to do the same.

As others have already mentioned, many Go servers/associations (like OGS, EGF, AGA) do not use the basic Elo algorithm, but instead other ratings systems (like glicko2) that are conceptually similar to Elo yet with more advanced enhancements.

However, let me answer your original question specific to Elo, even though that’s not what’s used here on OGS.

When the performance gap is G points, the standard Elo model (using the typical constant of 400 in the equation below) gives the weaker player this probability of winning (assuming this is applied to a game where draws are not possible or extremely unlikely):

1 / (1 + 10^(G/400))

For a 500 point gap, that is about 5%, and for a 300 point gap, it is about 15%.

Note that these answers critically depend on the parameter 400. If the implementer chose a different number, then these probabilities would be very different.