So input of your algorithm is "O" as starting point, "T" as the target point, and a set of intermediate points. I would try the following approach:
Create the list of all segments (formed by all pairs of two points, including the intermediate points as well as O and T).
Sort the list by segment length in increasing order.
Now start with the empty graph containing all points as vertexes, and add segments from the list as edges one-by-one until there is a connected path in the graph from O to T.
Any of the paths found in step 3 is a valid solution. The latest added segment is obviously part of such a path, and it represents the "longest jump" necessary. Whatever path you choose, all other segments will be shorter than the last one.
The key here is to implement step 3 in an efficient manner, for not having to run a full path search after adding each segment. This can be accomplished as follows:
In the graph data structure of step 3, maintain the set of currently connected subgraphs (at the beginning, each point/vertex has its own subgraph). Whenever a segment is added, check if the endpoints of the segment belong to two different subgraphs, and if yes, merge those subgraphs. As soon as O and T belong to the same subgraph, the algorithm has found a solution.