I don't like these because it's not hard, can't really show skill as people aren't impressed unless you overengineer. I don't have time/desire for that - prefer algo questions as it's some entertainment at least. Although this is probably best way to hire juniors.
Big red flag if you think the only way to impress someone of your coding skills is if you overengineer a solution. If some candidate submitted an overengineered solution, I wouldn't hire them.
I agree on needing time to solve the take-home. That's the biggest con with this approach.
If you don't have the desire to complete the take-home exercise, then you probably don't want to work there in the first place.