A solution would be to use ranksep=0.1 and change the len of specific edges, with minlen.
digraph G {
ranksep=0.1
subgraph cluster_outer {
subgraph cluster_1 {
a [shape=rect, height=1.5]
b [shape=rect]
a -> b[minlen=2]
}
subgraph cluster_2 {
c [shape=rect]
d [shape=rect]
c -> d [color=red]
color=red
}
}
}