Gavin Williams came within two outs of Cleveland’s first no-hitter in 44 years before the Mets’ Juan Soto homered with one out in the ninth inning.