Doing this is a lot of work, and that is why there are, as you say, so many options for "Solution/Answer" packages. You might actually find a package that fits your need pretty easily; maybe exercisebank, xsim, or some of the other alternatives in the exercise and exam topics on CTAN.
That being said, you can as @Levy says, use the comment package to hide your environment. Maybe the \vspace workaround that @Levy suggests could be sufficient, but I couldn't help myself in regards to the automatic height question.
You could use boxes to make sure the height is appropriate. That is, the actual height of the content. Almost.
By defining the \ProcessCutFile to be empty then the comment package won't do anything (it's all in the docs). Further more, we can use the \CommentCutFile to put the content of the environment into a \box, which we can get the height of. Then we just apply \vskip to push this height.
However, if we want it for multiple pages, I came up with a solution that puts \vskip 10pt until it reaches the height of the box. A little hacky, I know.
Only drawbacks are that this height thing would probably not work with verbatim environments like e.g. listings.
\documentclass{article}
\usepackage{comment}
\usepackage{fp}
\usepackage{lipsum}
% Make ourselves a new conditional
\newif\ifDisplaySolutions
% Use \DisplaySolutionstrue to "activate" it
\makeatletter
% Make a solution environment
\generalcomment{solution}{%
\begingroup
\ifDisplaySolutions\else%
% if \DisplaySolutionstrue is not called, then we remove the contents
\def\ProcessCutFile{}\fi%
}{%
\ifDisplaySolutions\else%
% aand,now (also when it's not called), we make a box
% and then we \input the \CommentCutFile.
\setbox1=\vbox{\input{\CommentCutFile}}%
\edef\boxheight{\strip@pt\ht1}
% Get the height from \ht1 and use \vskip to make appropriate space
\newcount\Scount
\Scount=0
\FPdiv\boxPartHeight{\boxheight}{10}
{\nullfont\loop\vskip 10pt\relax\advance\Scount by 1 \ifnum\Scount<\boxPartHeight\relax\repeat}
\fi
\endgroup%
}
\makeatother
%Uncomment below to hide solution
\DisplaySolutionstrue
\begin{document}
Some problem text goes here \lipsum[1]
\begin{solution}
\textbf{SOLUTION}\lipsum
\[ \forall\varepsilon>0\exists\delta>0:\dots \]
\end{solution}
Some text after solution.
\end{document}
Edit: Made it work across pages
\DisplaySolutionscommand that you toggle it with :) – Andreas Storvik Strauman May 30 '18 at 00:15