Earlier quoted context omitted.
We did this at my company. A developer at the level that that developer was applying for would do a task that took them 2-4 hours. We then gave the interviewee four days to complete the task with a recommended time of 2 days. We also always made sure to include the weekend in the time they had to complete the task as we know during the week time is precious.
I'm interviewing with 6 companies simultaneously and like you they all think they're deserving of free labor. I'd wager your company must have the worst devs, those who have little self respect and zero other prospects. Do you not understand that you're requesting free labor from an applicant? Did you forget the purpose isn't to have the sickest challenge ever but to evaluate someone's code/ingenuity?
Absolutely worth it if it gets you the right job. Hell, most people pay multiples of that through recruiters and referrals.