If you get to the point where you are going to give an assignment, you have somebody that you believe could do a job that probably pays very well. Go ahead and give the assignment, but also be respectful and pay them for their time.
The assignment is an assessment though, it isn't actual business work. I've seen before this suggestion that companies are trying to get free work out of candidates, but I find that really hard to believe.
I don't know if you're suggesting that interviews should assign actual tickets in an interview, but that seems nearly impossible to do in practice. I've never got back work from an interview or assessment that was anything near production code - nor would I expect to. It's to get a sense of the level of their real world coding skills are since there is such a variance between developers.
You pay them for the time to complete your testing materials. It ensures that your test is not overly lengthy and it's more likely to be reviewed by someone and not used as an intake filter because you are investing in the candidate.
I genuinely don't get this mindset at all. Even if they were to pay you, they're hardly going to pay you very much to do some coding assessment that's a few hours work.
It's not actual business work but you are asking for actual time from the person's life. When it's an non-trivial amount of time, you should compensate them fairly.