I agree, this will really just average the time spent in a slightly different way... however, you should be aware that the last page in a visit in most cases won't be included in any time metrics... as there is no clear event to indicate that the user has finished using the site.
This is also going to be an issue trying to track this yourself... The getTimeBetweenEvents is good if you can clearly define the start and end events... which may not be the case here....
The definition of a calculated metric technically already exists (sort of), out of the box in Adobe...
Average Time on Site
The problem is that this definition changes depending on the usage... when used against the "Day" dimension, it will return the average time spend on the site in that day, but that might include multiple visits by the visitor.... Your specific definition will keep that limited to Visit, and certainly can be used.
You can see it's very different at the Day level:

But, if I were to breakdown by my Users and Visit Number:

You can see that the calculated metric is basically spot on...
So, yes, you should be able to use that calculation for a simple way to get the average time spent per Visit.
While Adobe's time spent isn't the best (due to it not being a heartbeat system, and not taking into account tabs in the background or the last page)... as a benchmarking metric, it has value, and watching specifically at the Visit level is certainly worth monitoring.