I will answer your questions from I have personally experienced while doing freelance work or what I call “IT mercenary work”, That I have obtained over the last 20 years roughly.

1. Exposure to a diverse set of work environments;
Yeah, you can encounter different work environments if you’re required to go on site. Most of the work I done as freelance has always been remote so I rarely have to go on site unless it's like some sort of recovery effort or investigation of sorts. I do know there is far more red tape involved when someone brings you on 1099 contractor in a large corporation vs a startup. I generally find startups to be more ideal as they are normally pretty chill and upbeat. I enjoy working with people who love what they’re doing and their product or service. Then going into a business that is confused to why your even there, and or the company is doing bad to the point that none of the original staff wants to give any information about their own network or systems. This happens in places that fear the outsider and want to sabotage you and your efforts. Mostly, if they fear losing their jobs. I generally always be as natural as possible to avoid any tension between whatever drama there may be going on in the company.
2. Exposure to a diverse set of technologies and domains;
This can be true if your freelance is wide spread, doing work on Linux/MacOS/Windows, then you will get exposure to a lot of different technologies vs just freelancing in a focus skill like say UI interface development. I personally have worked in various areas of freelance from many different types of industry. It can be rewarding to work with some areas of technology that is on the cutting edge, like one freelance job was to assist a group setting up antminers for mining crypto currency.
3. Finding work when starting out is difficult;
It can be, but I found Linkedin and dice have proven to be pretty awesome at providing job offers, there are also freelance boards to do one hit wonders like coding jobs to write something for someone. I have seen tons of them for web development.
4. Finding work becomes progressively easier;
It does, the more your name gets out there the more it’s shared among others. If you did a great job for one company and they are friends with another they may recommend you to help them also. I picked up a lot of work and repeat work via word of mouth.
5. You don't have time to get bored;
I generally never board, but I am also on call 24/7 and that can be tiresome over long periods. It’s good to have a passion doing what you love then to do it just for money. It’s better to get paid for something you enjoy doing.
6. You have the freedom to work on other projects, including your own;
Yes, to an extent, in most cases you can set your own hours unless the client or company is on some specific schedule and if you work internationally you may be resetting your schedule to someone else’s hours, a great many times I have been switched onto nights due to this.
7. You can increase your hourly pay with every contract;
This was the hardest one for me to figure out, pretty much you don’t want to be taken advantage of. I learned to know my value and I value my time. I waste no time in explaining to a client or company that I wouldn’t be interested if it’s too low of a rate. I pride myself in my knowledge and skill, and in most cases if they want my services they are coming to me and not me going to them and sure they could find some replacement, but where I am today that would cost them more then what I would consider a fair wage. I also operate with a hard policy of “no money, no work” this is where working for corporate can be better you’re more likely to get paid on time and what they agreed too. Where as in other cases you may do work and rendered services, and then the client doesn’t pay you the correct amount or on time. If they can’t be bothered to honor the contract then I stop caring about providing services. Also, make sure to get a written contract and that whoever is hiring you to do their work signs it. If they are a new client or they screwed me in the past I make them pay half up front or all up front or is escrowed through a middle party.
8. You learn how to negotiate;
Yeah, stand up for what you want, don’t take a job that you don’t want to actually do, there are hundreds of jobs dropping daily, no need to force doing something that isn’t worthwhile. I try to stay in areas that I know I excel at and prefer to render quality to the client over just doing any job that comes across.
9. You mostly do menial / grunt work;
That can happen if you get suckered into doing some migration, where some company is moving from one office to another, they may outsource their grunt work. I don’t do this anymore I did it earlier in my past, but I avoid wasting my time moving people’s cubicles and setting up their new desk. It’s not going to teach you anything of value, but it’s shocking that there are employee’s that can’t even connect up their own computer. In one case I had to deal with the new office wasn’t even wired for networking so there was no Ethernet ran and none of the switches or networking equipment was ready. Make sure to find out exactly what it is and try to get everything required of you on the contract before you take the job so there is no fun surprises to deal with that have made you not take the job in the first place.
10. You will suffer / have suffered a penalty if you decide to stop freelancing and move into management / higher levels;
Doubtful, only hiring companies that are sticklers for amount of time worked at a previous company vs working for hundreds of micro jobs. Some hiring departments may see it as instability in work history. However, you will likely have vastly more information and skill from working in the field, then if you just got a single job and worked the same routine for like four years.
11. You need to constantly work on personal brand;
Of course, improving yourself is always a plus, and building up your client base ensures freelancing can be survivable no one likes going without food or rent due to lack of active jobs. I know some freelancers that created small businesses and later became full on managed support for people’s technology needs.
12. Companies don't hire contractors unless they have to;
Companies will reach out into freelance when they can’t achieve their goal internally or don’t have the funds to bring on a person full time, and sure they don’t want a full time employee since they have to pay benefits. However, that may mean they might try to take advantage of you, so remember to work out a reasonable contract.
13. Is it easier to find remote work?
It can be, especially if you’re working internationally, I found that Linux administration seems to be more wide spread for remote work vs windows administration, for whatever reason windows jobs want you to actually go to the servers physically, which is annoying. I would rather have a laptop and work remotely via SSH on some Linux related job. However, some on sight jobs can be fun especially if you’re into solving things, to where you go and have to investigate or find out what is causing their problem. Like random network outages, or if your hired to find out how they got breached/hacked.

-Estella