The point of the assignment isn't to make it "fair" (in some loose sense), but to filter out candidates.
Let's say I come up with an assignment and I pass it to a junior to see how long it takes. The junior does the work, likely reports the time rounded down, but also with no stakes. Jim job is secure.
As an interviewee you're gonna spend time polishing the code. Every variable well named, lots of comments, good functions, well considered parameter order etc. It's gonna take longer because , for you, the stakes are higher. You'll likely build some code to test it, and so on.
This is before we discuss domain knowledge that the junior had, and also that the company implemented the task in the first place and didn't just spitball the time expected.
They promised this person if they completed it, they would get an actual human response back.
Not only did they not get a response back, they didn't get a response back from anybody, even when directly trying to follow-up.
And this was what was promised for spending 4 hours of your time on something.
At the very least, that seems unfair.
If they said it would take 4 hours and you spent 10 hours on it, it’s likely your approach was ineffective compared to a more skilled engineer.