A hotspot is triggered when the viewpoint enters or leaves it. Here you have a hotspot that will be triggered when you enter it
Code:
ball1.starthotspot(BALL, viz.CIRCLE_HOTSPOT_IN, 0,0,20)
The radius of this circular hotspot is 20 meters so the viewpoint triggers it from the start.
It seems like a hotspot is not what you want here. Get the position of the first ball within a timer function and when it's at the position you want move the second ball towards it.