As far as I know there are no official records for this. At least not published. The ATP surely has the data. I calculated the answer to your question on my own (with the help of this awesome tennis dataset by Jeff Sackmann).
Here is the list of players with most consecutive sets won (columns denote player name, streak start, streak end, number of consecutive sets won):
Clay
Rafael Nadal 2017-05-29 2018-05-07 50
Guillermo Coria 2003-07-14 2004-02-16 35
Ilie Nastase 1973-05-18 1973-06-02 34
Rafael Nadal 2010-05-09 2011-04-10 32
Rafael Nadal 2007-05-28 2008-04-28 31
Rafael Nadal 2012-05-13 2012-05-27 30
Rafael Nadal 2006-09-22 2007-05-07 30
Hard
Novak Djokovic 2016-03-07 2016-07-25 34
Roger Federer 2005-08-29 2006-01-16 33
Ivan Lendl 1987-07-27 1987-09-01 33
Roger Federer 2006-11-13 2007-02-26 31
Jimmy Connors 1975-02-17 1975-11-06 31
Grass
Roger Federer 2003-06-23 2004-06-21 36
John Mcenroe 1984-06-25 1985-06-24 31
Roger Federer 2017-06-19 2017-07-03 29
Roger Federer 2007-06-25 2008-06-23 29
Stefan Edberg 1990-06-25 1991-06-24 27
John Newcombe 1974-12-21 1975-12-26 27
Carpet
John Mcenroe 1984-02-24 1984-09-28 49
Jimmy Connors 1974-02-10 1974-09-23 45
Ivan Lendl 1982-09-20 1983-01-24 36
John Mcenroe 1983-09-30 1984-01-23 33
Wojtek Fibak 1980-03-24 1980-11-04 31
Irrespective of surface
Jimmy Connors 1974-02-10 1974-03-24 44
Ivan Lendl 1985-08-27 1985-10-21 43
Jimmy Connors 1976-03-22 1976-06-21 40
Bjorn Borg 1979-06-25 1979-08-28 40
John Mcenroe 1982-10-01 1982-11-26 37
Bjorn Borg 1980-02-19 1980-04-22 35
John Mcenroe 1984-02-24 1984-05-06 35
Ilie Nastase 1973-05-18 1973-06-02 34
Ivan Lendl 1987-07-27 1987-09-01 33
Jimmy Connors 1975-09-21 1975-11-06 32
Ivan Lendl 1986-02-10 1986-03-24 32
Guillermo Coria 2003-07-14 2003-07-28 32
To answer your question on who would be third best: This would then be the carpet streak of Jimmy Connors.
Jimmy Connors 1974-02-10 1974-09-23 45