Your company might be inadvertently attracting poor candidates. I imagine a lot of good candidates (like myself) would just pass on a 4 hours of homework for a random programming job. And good candidates almost certainly won’t spend 3 days on it.
Remember Joel Splosky’s classic observation: all the good programmers already have good jobs. The ones on the job market who apply to jobs are usually the bad ones.