I think raytraycer based on kd-tree (SAH) with ropes is most suitable for this task. Time (just sequential number) can be saved in primitives and min of times in nodes to speedup calculations.
I think that only the bad statistics of this problem are the reason not many solutions of it were produced. In the beginning I was frighted too but then I tried some of my ideas. In fact the first not stupid idea worked. It took me many submits only because I believed there were some great tricks and I submitted correcting some stupid things I thought were bugs and not finding my big real bug. If someone is interested in my idea or even my solution email me at bstrandjev@gmail.com as I do not approve of posting solutions in the discuss threads.