I work mostly remotely (although I do visit my clients every now and then), and many of the pitfalls in the article are real, and I had to deal with some of them.
One is the ability to work whenever the hell you want. For me this led to working in the dead of the night. I'd start at around 7PM in earnest and finish by 4AM (!). If you have a family, this is not a sustainable situation, so I had to fix that. It was surprisingly difficult to fix - I'm a night owl naturally, my best work is done late in the day, the later - the better. But I go to bed at 12AM now, which isn't too bad.
Another very real issue is the separation of work and life. That I dealt with by only doing work in one place at my house. I have a separate "work" desk, and a separate set of hardware there (computers are provided by clients), and I don't do work anywhere else. I also have different login keys on client hardware and SSH password login is disabled, so I can't log into them from my personal laptop even if I want to. Finally, I have a separate GSuite account for work Gmail, and Chrome profile, and there's no "work" chrome profile on my personal laptop. This solves the problem reasonably well, without the expense of renting an office, and time sink of adding a commute. This would have been an intolerable situation if I had small kids or a needy spouse though. I'd have to rent an office then.
WRT "mental health" issues, I feel like I'm doing all right on that front. If anything, visiting the offices is more stressful than not going anywhere. It's much noisier and much harder to focus when I'm there. But I suspect the transition would be a lot less clear cut if the office arrangement were more humane, like it was at, say, MS in early 00's - individual offices where you can close the door, library noise levels. I had one of those as late as in 2009. It was heaven compared to what you get now (including at MS). I kept my door open most of the time, but when I needed to really focus, I had the option of doing so.
I think one important thing is to keep a conversation going with whoever manages you and with your direct teammates. You don't have to get into everyone's face, but a low traffic, async Slack channel is pretty indispensable IMO, as is the brief weekly report on what's been done and what remains to be done. If this is not done, it could appear that you aren't doing much: people won't naturally make the consistent effort to go and look, and even if they do, it's often not easy to see the difficulties you've experienced. I.e. you could spend a few days debugging a gnarly issue in TF 2.0 (of which it has a surprising number), and the fix might be one line. That could very easily appear like you've been slacking off most of the week if the only info the other side has about the fix is a brief blurb in the PR.
Finally, another issue is that I feel like remote is more suitable to the kind of work which is not speculative in nature, and where you can deliver results of a predictable size at a roughly even cadence. With some of the best work I've done in my career that hasn't been so: delivery was very uneven, and I'd sometimes not submit anything for weeks on end just because I was thinking of (and prototyping) how best to do what I was trying to do. I imagine that'd be problematic in a remote arrangement, especially if you change a steep hourly rate, like I do.
If someone has found a solution to this last problem, please share.