Blender mesh ray_cast doesn't work, doesn't detect intersections
It turns out ray_cast takes start, direction, not start, end, as parameters.

Given a start and end, you can find the direction with something like:

direction = end - start;
direction.normalize()


Assuming that start and end are Vectors, as in start = Vector( ( 0, 10, 0 ) )

Don't trust any Google results about the Blender API docs, because the newest documentation doesn't appear in Google search results. Here's the correct documentation which won't show up when searching.