re: "I agree, I have freelancers that never did any work and cancelled the contract"
Whether I hire people to do computer-based work on Upwork, or whether I hire local laborers via CraigsList, I assume that a certain percentage of them will not show up. So I adjust my hiring accordingly.
I hire using a buffer, typically assuming a "flake" rate of one-third. So (for example) if I need 3 people for a job, I hire 4 or 5. That way I can be fairly certain I'll have the crew that I need.
If I need only one person to do an Upwork job, but if my deadline is tight, then I'll hire 2 or 3 people, and clearly explain the deadline. If I receive acceptable submissions before the deadline, I can close the contracts on everybody, including those who didn't submit any work.
You (R S) are clearly displeased with contractors who accept a contract and never do any work. I understand how you could find this to be unprofessional. But, honestly, I don't even think about it any more. I accept this as given. I'm appreciative of the quality individuals who show up and do the work as promised.