tokcycle does this with alternate syntax. If you need to digest #-style arguments, more is required.
In this case, the variable into which the environment is stored is the token list \cytoks.
\documentclass{article}
\usepackage{tokcycle}
\begin{document}
\tokencyclexpress
Hello, world!
\endtokencyclexpress
\the\cytoks % here!
\end{document}

If you wanted the exact syntax described in the OP's question and wanted to digest #-style arguments, then this extended-tokcycle environment can make a go of it.
Further, this MWE shows that the environment does not merely stored the result of executing the environment, but actually stores the tokens making it up. We see this in that changing the value of \ifmymode changes the output of \print.
\documentclass{article}
\usepackage{tokcycle}
\xtokcycleenvironment\start
{\whennotprocessingparameter##1{\addcytoks{##1}}}
{\processtoks{##1}}
{\addcytoks{##1}}
{\addcytoks{##1}}
{\let\stop\endstart}
{\tcafterenv{\def\print{\the\cytoks}}}
\newif\ifmymode
\begin{document}
\mymodefalse
\start
\newcommand\z[1]{\ifmymode This is it: #1\else Fuggedaboutit!\fi}
Testing ``\z{Hi Mom}''
\stop
\mymodetrue
\print % here!
\end{document}

Of course, the real power in tokcycle isn't just collecting the tokens, but in providing the ability to manipulate them in the input stream. For example, the environment can be set up to change all i tokens to I (assuming that such a change will not break any macros), in addition to all the prior stuff:
\documentclass{article}
\usepackage{tokcycle}
\xtokcycleenvironment\start
{\whennotprocessingparameter##1{\ifx i##1\addcytoks{I}\else
\addcytoks{##1}\fi}}
{\processtoks{##1}}
{\addcytoks{##1}}
{\addcytoks{##1}}
{\let\stop\endstart}
{\tcafterenv{\def\print{\the\cytoks}}}
\newif\ifmymode
\begin{document}
\mymodefalse
\start
\newcommand\z[1]{\ifmymode This is it: #1\else Fuggedaboutit!\fi}
Testing ``\z{Hi Mom}''
\stop
\mymodetrue
\print % here!
\end{document}

\stopas that is a satndard latex command and will stop latex – David Carlisle Sep 04 '21 at 21:34\begin{foo}and\end{foo}(for example) into\BODY, although\BODYis only accessible inside the environment. – John Kormylo Sep 05 '21 at 15:47