I managed to make it work 1 in 5 times on an average now. Rough algorithm:
1) Just cache points upto 500 points
2) Use that to calculate precise turn, num of steps in a circle
3) Also it gives approximate radius and center
4) Then apply convolution on each point in the circle to get the ‘Mu’ for each point.
5) Then try to get the best first point, by collapsing all the points on a single axis. Using this I get the first point very close to the actual one e.g. 0.2, 9.8 for (0, 10)
6) Then I use this good point to get other good points in a circle, just using this and the turn.
7) Then try to visit all the points, in a pattern using which most points can be visited in the 500-1000 iterations.
8) Below is a sample unsuccessful run pattern. It tries to stay ahead of the rogue robot and meet it at the next rough halfway mark. (Fig 1)

9) Above (Fig 2) is a sample successful run case. In which  the rogue robot was caught it in 680 steps
I tried with some other approaches, as well. Just spiraling around the first point. Which also gives varying results.

Would very much appreciate any inputs, or a better algorithm, using which I can catch it more often.