Minecraft malfunctions with a low enough Y-value?
Solution 1:
Because computers store numbers in limited precision.
With bigger numbers the precision gets worse and worse, because the numbers are stored something like 1.2345·10123 (but in binary... it's a long story).
Here, I try to decrease a big floating point number by different amounts. Notice how changing it by smaller amounts doesn't do anything.
>>> a = -360287969785042688.0
>>> a = a-1; format(a, 'f')
'-360287969785042688.000000'
>>> a = a-5; format(a, 'f')
'-360287969785042688.000000'
>>> a = a-10; format(a, 'f')
'-360287969785042688.000000'
>>> a = a-15; format(a, 'f')
'-360287969785042688.000000'
>>> a = a-20; format(a, 'f')
'-360287969785042688.000000'
>>> a = a-25; format(a, 'f')
'-360287969785042688.000000'
>>> a = a-30; format(a, 'f')
'-360287969785042688.000000'
>>> a = a-35; format(a, 'f')
'-360287969785042752.000000'
>>> a = a-35; format(a, 'f')
'-360287969785042816.000000'
>>> a = a-35; format(a, 'f')
'-360287969785042880.000000'
>>> a = a-35; format(a, 'f')
'-360287969785042944.000000'
Notice how the difference between numbers isn't actually 35. It is the smallest possible difference between two such huge numbers in binary floating-point representation.
The same happens in the game. Multiple times per second it tries to decrease your Y position by vertical speed, which is apparently less than this minimal difference between two neighboring numbers.
But if you teleport by a larger amount, you obviously can break that limit.
This is clearly outside the scope of this site. But there is plenty of information on floating-point numbers.