Rank between source and sink

For the general case, no (see Allow user to provide levels, or levels plus ordering (no ranking or crossing minimization), and let dot finish (#2023) · Issues · graphviz / graphviz · GitLab).
But for a 3rd / middle rank, yes (rank | Graphviz):
rank=source // exclusive
rank=same // all the rest
rank=sink // exclusive