I read up on search.runPaged. Note that it only supports 1000 pages, so a maximum of 1 million rows. The search that I executed in the example returns 2,2 million rows. That would potentially explain why the search is twice as fast compared to a single getResults in ss1.0.
The documentation also states that the search is not cached in 2.0, so I suspect it is running the search and extract some start and end-row in some way for each page before it returns the pagedData-object.