Longest path in a strongly connected component
You won't be able to find any efficient algorithm for your problem, unless $\mathsf{P}=\mathsf{NP}$.
Consider an instance of Hamiltonian path: given a graph $H=(V,E)$ on $n$ vertices decide whether it contains a simple path of length $n-1$. This is a well-known $\mathsf{NP}$-hard problem.
Construct $G$ from $H$ by adding two vertices $x$ and $y$, the edges $(x,y)$ and $(y,x)$, and all the edges $(y,v)$ and $(v,y)$ for $v \in V$. Notice that the only strongly connected component of $G$ is $G$ itself.
There is a simple path of length $n+1$ in $G$  if and only if there is a path of length $n-1$ in $H$.
Indeed, if $P = \langle v_1, v_2, \dots, v_n \rangle$ is a path of length $n-1$ in $H$, then $\langle x, y, v_1, v_2, \dots, v_n \rangle$ is a path of length $n+1$ in $G$.
Conversely, if $P$ is a path of length $n+1$ in $G$, $P$ must have $x$ as one if its endpoints (as otherwise $x$ would have one in-neighbor and one out-neighbor in $P$, but the only in/out neighbor of $x$ is $y$, contradicting the hypothesis that $P$ is simple). Then $P$ is of the form $\langle x, y, v_1, v_2, \dots, v_n \rangle$ and $\langle v_1, v_2, \dots, v_n \rangle$ is a path of length $n-1$ in $H$.