The worst take home assignment I ever had was an extremely tricky brain teaser, the answer to which could not be found on google, and had to be done in the not very popular language this company used. So I not only had to write useless brain teaser code, but I couldn't do it in a language I was already comfortable with.
During the code review in the follow-up interview, I was raked over the coals for not writing tests, failing to cover edge cases, etc. ,etc. Basically, they expected production-ready code. Didn't get the job.
Year’s later I did the same as you and decided to stick to the recommended time, because I really don’t want to waste my nights/weekends on this junk anymore. Working full time there’s barely any time for relaxing anyway. Sure enough, the same thing happened in review. Got absolutely shredded on my implementation. Didn’t get an offer and kind of wish they didn’t even call me back.
It's somewhat common during a data science interview to be given the actual problem you would be working on if you took the job. Often times you're given multiple days as a take home or multiple interviews to go through it, because the problem is difficult enough it does take research to begin to hypothesize a possible solution.
Most software engineers would cry murder if you gave them a 3 to 5 day take home interview that is an actual problem the company is trying to solve. "It's free labor. They're taking advantage of you." but in the data science world solving a problem can take 3 to 12 months, not 3 to 5 days, so you can't solve it in that time frame, just come up with ideas that lead to paths forward. The company can't take advantage of you this way.
On the SWE side, a near equivalent would be pairing with someone on the actual code base with an actual jira issue for a day, learning the code base, seeing the problems in the bug tracker, and then deciding from there if those are the kinds of problems you want to spend the next handful of years of your life on.
I like this kind of problem because I know what my 9 to 5 will be for the next year to years and if it is what I want to be doing with my life.
So pay them. $400 for 10 hours of work is nothing for a company compared to the man hours spent on the hiring process. It also signifies to the developer that this company is serious about hiring them.
I know the take home assignment is a divisive subject, but I think it's the perfect way to evaluate a person's coding ability. Did they use dependency injection or did they reference globals straight in the code? Did they break down the code into small testable chunks or write one giant file? Would their code pass code review? These things are way more important for most codebases than shaving an order of magnitude of big 0 complexity.
The only issue with the take homes is that they take a ton of time. Most companies say that it should only take a few hours but also ask for production grade code. Thats impossible - clean code takes time. Companies should at least start compensating for the time taken to do the assignment.
My favorite interview process involved a take home assignment which if you pass takes you directly to the final onsite interview. There the live coding sessions involved building more features onto the take home. As an experienced programmer who sucks at Leetcode I really hope the industry moves in this direction.