It kind of seem to be getting worse as of late. We have run probably 20-30 builds with the imbalanced run time now, thinking it would improve but it does not seem to be.
Firstly, hooks are not included as part of the timing report. Some of my tests have pretty heavy hooks (before()) but fairly quick test, the time in hooks are not included.
2nd issue is that junit reporter is using full path in the timing report, whereas circleci tests split is using relative path. What we end up doing is to strip away the full paths from the report before storing it, e.g.: sed -i 's/\/home\/circleci\/repo\///g' junit/test-results.xml.