The good data science take-home assignments I've done suggest a 2-3 hour limit and they were correctly scoped for that limit, although technically there's no incentive for the candidate to stick to that limit.
The worst take home I did suspiciously did not have an expected time limit (but was due in 48 hours after issuing). It was extremely broadly scoped, and as a result it took 16 hours; even after a couple years as a data scientist now and familiar with time-saving tricks, it would still take 8 hours minimum if you weren't already familiar with the company's data.
16 hours is kind of insane and you have my sympathies. My record is around 10 hours.
Which is a good way for you to weed out companies where the developers are low to average intelligence.
Not understanding basic functional programming concepts, in 2019? Seriously?
It's sort of a selfish way of interviewing; to write good code for these projects, it can take me upwards of 8 hours. An engineer where I live (NYC) can fairly easily make $50/hour (usually more), so they effectively expect me to give $350-450 of time for this company where there's a fairly high likelihood that they'll tell me to buzz off. I typically write in a very functional lispy style (even when I did JavaScript), and while the overall understanding of FP has improved in the last couple years, a lot of the interviewers would simply not understand what I was writing, and ask me to write it "more object oriented".
Big corporations like Google can get away with that, but for a small startup I really don't think it's worth it to do them (not to mention that I had a friend who did one of these assignments, and they ended up using his code in production without paying him).