Replacing existing employees is expensive. You understand the code, the business, the processes, the knowledge network (who knows what), etc.. Hiring someone straight off the street to replace you, even if they on paper have same technical skills, is a huge cost.
Thus, given a rational manager, if you are willing to quit your job over this you have a lot of leverage.
You can make your negotiating position even stronger by:
1. Living below your means, so you have lots of savings in the bank.
2. Getting a job offer you're willing to accept that does have this benefit, then going to your employer and asking them to counter it.
3. Pointing out the ways this will benefit your employer.
There's a couple chapters about this in my book, The Programmer's Guide to a Sane Workweek (https://codewithoutrules.com/saneworkweek/), but it's similar negotiating dynamic to part-time job, except much easier to get, so this blog post may also be relevant: https://codewithoutrules.com/2018/01/08/part-time-programmer...
though it can be very productive, it certainly comes with it's own set of downsides; - working from home, you'll never get "home from work". in the end, at least in my case, it caused me to work outside working working hours more often as my home became my office. - the occasional brainstorm with your colleauges becomes a chore resulting in skipping those and writing worse code / having more debate over code reviews. even though there are quite a few video conferencing applications around, brainstorm sessions tend to be more effective / productive while having a walk / a coffee / etc together (my $0.02).
so yeah, when your work environment is the cause of burning you out, working from home is a short term solution, finding a better environment the long term one if you'd ask me