I know this is not what you are asking, but in fact there is an efficient algorithm.
This kind of graph problem can be solved in linear time on classes of bounded tree-width. The graphs you describe are a special case of tree-width $2$. Instead of going into the details of tree-width, I will describe the algorithm for the present problem.
We are working with segments of the cycle. Say, such a segment starts at vertex $s$ and ends in vertex $e$. The avenue $A$ of that segment is the segment together with all trees rooted at it. Unless the segment is the full cycle, $A$ is the respective connected component of (the graph minus (the cycle minus the segment)).
For each segment, we define $5$-tuple of numbers, called the type of the segment. It contains
- the length of the path from $s$ to $e$,
- the length of the longest path fully contained in $A$ that starts at $s$,
- the length of the longest path in $A$ that ends in $e$,
- the longest combined length of a disjoint pair of paths such as in the previous two lines, and
- the length of the longest path in $A$.
The key observation is that the type of the concatenation of two segments only depends on the types of the individual segments. Algorithmically, the respective operation on types can be done in $O(1)$. Thus, the overall algorithm works as follows:
- Compute the type of each singleton segment.
- Choose some point $s$ on the cycle.
- Iteratively compute the types of all segments starting at $s$ by concatenating singletons.
- The last such segment spans the whole cycle and the answer can be derived from its type.
Depending on the way your graph is represented as a data structure, the algorithm can be as fast as $O(n)$.