Methinks you didn't read GP correctly. They took a 2-4 hr task and let the interviewee take 4 days, not including weekends.
How did this become acceptable practice for hiring people? Do any other industries besides tech do this?
I think the only fair option is an in-person interview without homework assignments. Treats everyone the same and doesn't require inordinate time commitment.
If I want to interview at 6 places that just use onsite interviewing it's easy to figure out how to prepare.
I'm not sure where I stand on this sort of thing to be honest, my only experience of anything similar was a pre-interview task to implement a simple 10 entry LRU cache, and after getting the job I was told the only reason it was there was to weed out time wasters with next to zero skill being sent by the recruitment company.