Shortest path that visits maximum number of strongly connected components
For ease of writing, I'm going to say "component" instead of "strongly connected component."  This should cause no confusion, since it's the only kind of component we're interested in.

Let $G$ be your directed graph.  Let $H$ be the DAG made by contracting every component of&nbsp;$G$ to a single vertex. That is, the vertices of&nbsp;$H$ are the components of&nbsp;$G$ and there's an edge from $x$ to&nbsp;$y$ in&nbsp;$H$ if, and only if, there's an edge in&nbsp;$G$ from the component corresponding to&nbsp;$x$ from the one corresponding to&nbsp;$y$.  Write $h(C)$ for the vertex in&nbsp;$H$ that corresponds to the component&nbsp;$C$ in&nbsp;$G$.

Observe that any path in&nbsp;$G$ that visits the maximum possible number of components must correspond to a maximum-length path in&nbsp;$H$, which must run from some source to some sink.  So, we need to find the longest paths in&nbsp;$H$.  We can't just produce a list of them because there might be exponentially many.  So, instead, we assign a label&nbsp;$\ell(x)$ to every $x\in V(H)$ using the following procedure.


Topologically sort the vertices.
Set $\ell(x) = 0$ for each sink&nbsp;$x$.
Working back from the leaves in the topological ordering, set $\ell(x) = 1 + \max\,\{\ell(y_1), \dots, \ell(y_k)\}$ for each vertex&nbsp;$x$ with out-neighbours $y_1, \dots, y_k$.


Note that the topological ordering guarantees that we've already computed $\ell(y_i)$ for each out-neighbour&nbsp;$y_i$.  When the labelling is computed, it has the property that, for every vertex $x\in H$, $\ell(x)$&nbsp;is the length of the longest path from $x$ to a sink in&nbsp;$H$.

Now, produce a graph $H'$ from&nbsp;$H$ as follows.


Delete every edge $(x,y)$ such that $\ell(x)\neq\ell(y)+1$.
Let $m = \max\,\{\ell(x)\mid x\text{ is a source in }H\}$ (this is the length of the longest path in&nbsp;$H$).
Iteratively delete every source&nbsp;$y$ with $\ell(y)&lt;m$.


$H'$ contains exactly the vertices and edges of&nbsp;$H$ that appear in longest paths in&nbsp;$H$ (put another way, $H'$&nbsp;is the union of all longest paths in&nbsp;$H$).  In particular, every path from a source to a sink in&nbsp;$H'$ has length exactly&nbsp;$m$, which is the greatest length of any path in&nbsp;$H$.

Now, produce a graph $G'$ from&nbsp;$G$ as follows.


Delete from $G$ any component&nbsp;$C$ such that $h(C)\notin H'$.
Delete from $G$ any edge from component&nbsp;$C_1$ to component&nbsp;$C_2$ if there is no edge $(h(C_1),h(C_2))$ in&nbsp;$H'$.


Finally, let $S\subseteq V(G')$ be the set of all vertices whose components are sources in&nbsp;$H'$ and let $T\subseteq V(G')$ be the vertices in components that are sinks in&nbsp;$H'$.  The $S$&nbsp;$T$ paths in&nbsp;$G'$ are exactly the paths in&nbsp;$G$ that visit the maximum possible number of components. Use your favourite shortest path algorithm to find a shortest one.

Thanks to Bakuriu for suggesting topological sort instead of my ad-hoc algorithm.