The way the timeout is determined is kinda odd, so I don't know what the actual probabilities are. If I'm not misreading the source:
- Timer is initialized to 50 (MIN_ICE_TIME) if not already set. It's already set if this is an ice bolt travelling over existing (thawing) ice rather than plain water.
- There is a 1 in 2000 (MAX_ICE_TIME) chance that the current duration of 50 will be used as the duration.
- If this is not the case, increment the duration. There is a 1 in 1999 chance that the current duration (51) will be used.
- And so on; up to 1950 trials of "1 in (2000 - duration + 50)", with the final one being "1 in 50"
- If none of these trials pass, the ice is made permanent.