Sadiq Khan’s London triumph comes after bitter Tory battle