Note that in your benchmark, when you do zs[0] you create a new cuda Tensor containing that value but you do not actually sent it to the cpu. So it is expected for this to be faster than item().
You can call .cpu() on it or try and print it (which does the .cpu() implicitly) to make sure you compare the same thing.