首先,非延续性动词是可以用于完成时态的.只是非延续性动词在肯定句中不能与表示一段时间的状语连用,如I have finished my homework for two days这个句子是错误的,但去掉two days是可以的.否定句中非延续性动词能与表示一段时间的状语连用,如 she hasn't taken part in labour for weeks.
第二,条件状语从句中,谓语的时态可以用一般现在时或现在完成时代替将来时,但原题似乎强调homework的完成,所以用完成时态较好.
在after,as soon as,if ,till,when等引导的状语从句中,用现在完成时态代替将来时.如 I shall go to see you when I have finished my homework.
可参考徐广联主编中的时态那一讲.
至于楼主问的finishes是否正确?按理说可以.如1998年1月四级考试中曾有一题,用了finishes:
35.______ he works hard,I don't mind when he finishes the experiment.
A) As soon as B) As well as C) So far as D) So long as
所以finishes按理说是可以接受的,但楼主给出的题目中没有此选项.不过,个人觉得原题目用现在完成时比一般现在时好.