If you already used some "lts version", you can put "stackage sandbox init lts-2.4" to second command and it will re-use existing lts-2.4 sandbox without a need to reinstall anything.
That's it. It takes a very long time first time you build with this with some version of lts stackage, and there is some movements towards binary package sets, but I'm not sure on status of that.
IMO this sums up one of the biggest benefits with Go, and unfortunately goes against your own point. There's no need to know about a variety of community built tools, or what's the "best solution" in language X - the std lib gives you what you need. You can stand up a service quickly because it's simple, and there's no "in knowledge" required.
Just built my project on NixOS with no problems. Built it on Ubuntu with a cabal sandbox, no problems. Using stackage LTS I have no problems. Built it using Halcyon as well.
Building with vanilla cabal I might have some issues, but professional haskeller's use the tools mentioned above.