\setupindenting[yes, 3em]
\setuphead[section][page=yes]

\unprotect
\newbox\intertext_tmp_box
\newdimen\intertext_tmp_dimen

\starttexdefinition protected newintertext #1
    \texthere[left]{
        \setbox\intertext_tmp_box=\hbox{
            \startframedtext[
                offset=none,
                width=\hsize,
                frame=off,
            ]
                \parindent = \v_spac_indentation_normal
                \noindent
                #1
            \stopframedtext
        }
        \global\intertext_tmp_dimen = \ht\intertext_tmp_box
        \vbox to 0pt{
            \vskip\dimexpr 1ex - \baselineskip \relax
            \box\intertext_tmp_box
            \vss
        }
        \aftergrouped{
            \aftergrouped{
                \vadjust{
                    \penalty 10000
                    \vskip\dimexpr \intertext_tmp_dimen - \baselineskip \relax
                }
            }
        }
    }
    \breakhere
\stoptexdefinition
\protect

\starttext
    \section{Old alignment}
    \samplefile{knuth}
    \placeformula\startformula\startalign
        \NC \text{something} + \text{really} + \text{really} + \text{long} \NC= \sqrt{x} \NR[+]
        \intertext{\samplefile{knuth}}
        \NC d \NC= e + f \NR[+]
        \NC g \NC= h + i
    \stopalign\stopformula
    \samplefile{knuth}


    \section{“I expect to see \tex{noalign} only after the \tex{cr} of an alignment.”}
    \starttyping
    \samplefile{knuth}
    \startformula
        \text{something} + \text{really} + \text{really} + \text{long} \alignhere= \sqrt{x} \numberhere \breakhere
        \intertext{\samplefile{knuth}}
        d \alignhere= e + f \numberhere \breakhere
        g \alignhere= h + i
    \stopformula
    \samplefile{knuth}
    \stoptyping


    \section{Alignment not kept}
    \samplefile{knuth}
    \startformula
        \text{something} + \text{really} + \text{really} + \text{long} \alignhere= \sqrt{x} \numberhere
    \stopformula
    \samplefile{knuth}
    \startformula
        d \alignhere= e + f \numberhere \breakhere
        g \alignhere= h + i
    \stopformula
    \samplefile{knuth}


    \section{My hack}
    \samplefile{knuth}
    \startformula
        \text{something} + \text{really} + \text{really} + \text{long} \alignhere= \sqrt{x} \numberhere \breakhere
        \newintertext{\samplefile{knuth}}
        d \alignhere= e + f \numberhere \breakhere
        g \alignhere= h + i
    \stopformula
    \samplefile{knuth}
\stoptext
