Python 2, 124 120 bytes
X,Y=input() i=j=s=0 while i<len(X): v=abs(Y[j]-X[i]) if j+1<len(Y)and v>=abs(Y[j+1]-X[i]):j+=1 else:s+=v;i+=1 print s Saved 4 bytes by moving to program versus function.
Meeting the time-complexity constraint is possible because both lists are sorted. Note that each time around the loop, either i is incremented or j is incremented. Thus the loop is executed at most len(X)+len(Y) times.