I've been doing exactly this for the last decade or so. The short answer is "it depends".
There is lots of embedded dev work and few (IMO) devs who are able to handle the specifics of embedded properly. Even fewer can work both the HW/HDL and SW angles in a design and that's where I specialize. A significant portion of my workload involves being brought in to fix things that have gone pear-shaped because someone else thought they knew how to do something and now the company's in a jam.
Working remotely -- that's a mixed bag. Everything scuzzyTerminator said is true; most companies want your butt in one of their chairs, but a few are fine with remote software guys. Fewer are happy with remote hardware people, and even fewer yet want to let their prototypes out of the building. Remote debugging hardware can be interesting and frustrating (much moreso than debugging hardware locally). Ethernet-based tools are MUCH easier to use remotely. I've not found a single USB-over-IP system that works as expected, mostly because the people who wrote the drivers for the USB tools programmed in idiotically short timeouts that just won't work over remote. You can only get so far with VNC or RDP.
Remote in general: meetings. lots of meetings. I wonder how some companies get anything done because there are so many meetings. VERY few companies have adequate conference room equipment (proper conference room phones with good echo cancellation and enough mics to cover the entire room are expensive). If people are writing on whiteboards it is also a hassle to get someone there to either throw up a shitty webcam or again, have a PROPER conference room camera that you can move or see everything with. Microsoft Teams (used to be Skype for Business) is actually really amazing for being able to remotely work, but the company needs to buy in to it and probably won't for just one remote guy. Skype is a close second, but again it all comes down to good mics and potentially a good camera. Most people in meetings don't talk loud enough or their voices are low enough that a typical telephone muddles it and you can't hear properly.
For those who *do* let you work on hardware remotely, a VPN and some way of having it auto-connect is essential, as is network-connected power outlets or network-connected IO for hard rebooting targets. I'd say a UPS is also essential, and as long as my wishlist is open, at least one webcam+light aimed down at the board for watching LEDs/motors/etc. if applicable. I am personally a fan of the "lab computer running autossh -R" but be careful not to run afoul of their network policies. Some sensitive companies will (rightfully) terminate you on the spot if you've punctured their firewall without proper authorization. I've not done it yet, but a cellular networking dongle on a non-networked computer that is connected to the equipment you're working on would probably be a lot more acceptable for remote hardware access.
Even if you can talk to the hardware, you have no hands or eyes there so you can't attach a scope or logic analyzer and poke around easily. I try to make sure I can hit whatever I need before I leave but it's additional risk/hassle. It's much better to have the hardware local to yourself, whether that is onsite or at your own office.
I love contracting -- the variety in challenges keeps me motivated and interested. Being able to draw on my experience from one field to appear the magician and solve a problem in a completely unrelated field is a trip. I'm well-enough established now that most of my work comes from word-of-mouth, but starting out I used agencies. Most *suck* but there are some diamonds in the rough. They all take a (significant) chunk of your hourly rate but they have the "reach" to get you work in areas you can't get to yourself, and after the "hands off" period expires you can go direct to those clients.
Good luck! It's not for everyone, but I love it.