The standard trick for this is to draw a thick white line underneath, which can be achieved with preaction. This answer comes with a style on top, which can be used like (m-6-5) edge[on top] (m-4-6). You need to draw the topmost connections last. At the moment, the default line widths of the white lines is 4pt but you can adjust them to your needs.
\documentclass[border=5mm]{standalone}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}[on top/.style={preaction={draw=white,-,line width=#1}},
on top/.default=4pt]
\matrix (m) [matrix of math nodes, row sep=1.6cm,
column sep=0.4cm]{
&&Level(1,3)&&&&\\
&Level(2,2)&Level(2,3)&& Level(2,5)&&Level(2,7)\\
&&Level(3,3)&& Level(3,5)&&Level(3,7)\\
Level(4,1)&Level(4,2)&& Level(4,4)&&Level(4,6)& \\
&Level(5,2)&& Level(5,4)&&Level(5,6)& \\
Level(6,1)&& Level(6,3)&& Level(6,5)&&\\
Level(7,1) && Level(7,3)&& Level(7,5)&&\\};
\path[-stealth]
(m-7-1) edge (m-7-3) edge (m-6-1)
(m-7-3) edge (m-7-5)
edge (m-6-3)
(m-7-5) edge (m-6-5)
edge (m-5-6)
(m-6-1) edge (m-4-1)
(m-6-3) edge (m-6-5)
(m-5-4) edge (m-4-4)
(m-5-2) edge (m-5-4)
edge (m-4-2)
edge (m-3-3)
(m-5-4) edge (m-5-6)
edge (m-3-5)
(m-5-6) edge (m-3-7)
(m-4-2) edge (m-2-2)
edge (m-2-3)
(m-3-3) edge (m-2-3)
edge (m-3-5)
(m-3-5) edge (m-3-7)
(m-2-2) edge (m-1-3)
(m-2-3) edge (m-1-3)
(m-2-5) edge (m-2-7)
(m-4-2) edge[on top] (m-4-4)
(m-4-4) edge[on top] (m-4-6)
(m-6-5) edge[on top] (m-4-6)
(m-4-4) edge[on top] (m-2-5)
(m-6-3) edge[on top] (m-4-4)
;
\path[>=stealth,-,thick]
(m-7-1) edge [double] (m-5-2)
(m-6-1) edge [double] (m-4-2)
(m-5-6) edge [double] (m-4-6)
(m-4-1) edge [double] (m-2-2)
(m-3-5) edge [double] (m-2-5)
(m-3-7) edge [double] (m-2-7)
(m-2-3) edge [double] (m-2-5)
(m-4-6) edge [double,on top=5pt] (m-2-7)
;
\path[-stealth] (m-6-1) edge[on top] (m-6-3) ;
\end{tikzpicture}
\end{document}

@egreg called this code "awkward". The IMHO most redundant thing, however, is IMHO that one has to add the position of the entry by hand (but I do not like to use words like "awkward"). In any case, this can be made as easily as defining a style
level/.style={
execute at begin node={\text{Level}(\the\pgfmatrixcurrentrow,\the\pgfmatrixcurrentcolumn)}
}
which gets used in the following code, which also has some loops to draw the arrows.
\documentclass[border=5mm]{standalone}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}[on top/.style={preaction={draw=white,-,line width=#1}},
on top/.default=4pt,level/.style={
execute at begin node={\text{Level}(\the\pgfmatrixcurrentrow,\the\pgfmatrixcurrentcolumn)}
}]
\matrix (m) [matrix of math nodes,nodes=level,row sep=1.6cm,
column sep=0.4cm]{
&&{}&&&&\\
&{}&{}&& {}&&{}\\
&&{}&& {}&&{}\\
{}&{}&& {}&&{}& \\
&{}&& {}&&{}& \\
{}&& {}&& {}&&\\
{} && {}&& {}&&\\};
\path[-stealth]
(m-6-1) edge (m-4-1) (m-4-2) edge (m-2-2) (m-2-3) edge (m-1-3)
(m-4-2) edge (m-2-3) (m-5-2) edge (m-3-3)
(m-5-4) edge (m-3-5) (m-7-5) edge (m-5-6) (m-5-6) edge (m-3-7)
(m-2-2) edge (m-1-3);
\path[-stealth,every edge/.append style={on top}]
foreach \Y [count=\Z] in {3,5,7}{
foreach \X in {1,3,5}
{(m-\Y-\the\numexpr\X+3-\Z\relax) edge (m-\the\numexpr\Y-1\relax-\the\numexpr\X+3-\Z\relax)
\ifnum\X<5
(m-\Y-\the\numexpr\X+3-\Z\relax) edge (m-\Y-\the\numexpr\X+5-\Z\relax)
\ifnum\the\numexpr\Y*10+\X=31
\else
(m-\the\numexpr\Y-1\relax-\the\numexpr\X+3-\Z\relax) edge (m-\the\numexpr\Y-1\relax-\the\numexpr\X+5-\Z\relax)
\fi
\fi
}} (m-4-4) edge (m-2-5) (m-6-3) edge (m-4-4);
\path[thick,every edge/.append style={double,on top=5pt}]
(m-4-1) edge (m-2-2) (m-6-1) edge (m-4-2) (m-7-1) edge (m-5-2)
(m-2-3) edge (m-2-5) (m-2-7) edge (m-3-7)
(m-2-7) edge (m-4-6) (m-4-6) edge (m-6-5);
\path[-stealth,every edge/.append style={on top}] (m-6-1) edge (m-6-3);
\end{tikzpicture}
\end{document}
This information, together with this answer, allows one to simplify egreg's answer and to correct the arrows there (such that there is a 3D impression).
\documentclass{article}
\usepackage{geometry}
\usepackage{amsmath}
\usepackage{tikz-cd}
\usetikzlibrary{backgrounds}
\newcommand{\level}{\text{level}(\the\pgfmatrixcurrentrow,\the\pgfmatrixcurrentcolumn)}
\begin{document}
\begin{tikzcd}[column sep=1.5em,row sep=large,arrows={crossing over},
execute at end picture={
\begin{scope}[on background layer]
\path[->] (\tikzcdmatrixname-6-2) edge (\tikzcdmatrixname-6-4)
(\tikzcdmatrixname-6-4) edge (\tikzcdmatrixname-6-6)
(\tikzcdmatrixname-4-5) edge (\tikzcdmatrixname-4-7);
\end{scope}}]
&&
\level
\\ \\
&
\level \arrow[uur] &
\level \arrow[uu] \arrow[rr,thick,equals] &&
\level \arrow[rr] \arrow[ddl,leftarrow] &&
\level \arrow[ddl,thick,equals]
\\
&&
\level \arrow[u] \arrow[ddl,leftarrow] &&
\level \arrow[u,thick,equals] \arrow[ddl,leftarrow] &&
\level \arrow[u,thick,equals]
\\
\level \arrow[uur,thick,equals] &
\level \arrow[uu] \arrow[rr] \arrow[uur] &&
\level \arrow[rr] \arrow[ddl,leftarrow] &&
\level \arrow[ddl,leftarrow]
\\
&
\level \arrow[u] \arrow[ddl,leftarrow] &&
\level \arrow[u] &&
\level \arrow[u,thick,equals] \arrow[uur]
\\
\level \arrow[uu] \arrow[uur,thick,equals] \arrow[rr] &&
\level \arrow[rr] &&
\level
\\
\level \arrow[u] \arrow[rr] &&
\level \arrow[u] \arrow[rr] &&
\level \arrow[u] \arrow[uur]
\end{tikzcd}
\end{document}

amsartdocumentclass), what to do? – user149418 Jun 23 '19 at 14:44matrix of math nodesresults in worse quality. About the size, I'm afraid that the only option is scaling. – egreg Jun 23 '19 at 14:47\arrowsyntax. About the connections you mention, I followed the OP's preference, but I agree that it would be better as you propose. – egreg Jun 23 '19 at 20:37\arrowcommand can be certainly looked up and used in "plain" TikZ, too. But of course I agree that for many purposestikz-cdis more convenient (but this convenience backfires once one wants to do some "nonstandard" thing). – Jun 23 '19 at 20:41cdlibrary which does have theasymmetric rectangleshape. I believe that it is mainly a matter of wording. Sincetikz-cdis entirely based ontikz, there is nothing that you can't only do intikz-cdbut not intikz. Similar comments apply e.g. tosmartdiagram, liketikz-cdthis is a great package, and really super convenient to use. However, everything that can be done with either of these packages can be done with "plain" TikZ, too, yet may require more keystrokes. – Jun 23 '19 at 20:58tikz-cdnot only “more convenient”. Your code is awkward and really difficult to maintain. – egreg Jun 23 '19 at 21:04on topstyle, which is not awkward at all, and the above example allows one to retain full control over the outcome, something your suggestion can only achieve with much more efforts because the arrows get drawn in the order you place the commands. The code that you call "awkward", on the other hand, allows you to retain full control without any hack likeexecute at end picture. – Jun 23 '19 at 21:10