An important principle in SQL is "All at once". One consequence of this is that all expressions in the SELECT list are defined at once, and not one by one. Therefore time_duration is undefined at this point.
I believe that there are engines that violates this rule. SQL Server complies to the SQL standard in this regard.
But there is a second problem with your query. You have Start_Time, End_time and then an aggregate function. This means that you need to have Start_time and End_time in your GROUP BY clause. But since the aggregate function operates on exactly these two columns, the AVG becomes redundant, since there is only one value of input for each group.
What the right query would be I don't know, since I don't know what your original problem is.