Ответ 1
DocumentNode.OuterHtml
содержит полный html:
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.Load("sample.html");
string html = doc.DocumentNode.OuterHtml;
В вашем примере:
public static string GetWebPageHtmlFromUrl(string url)
{
var hw = new HtmlWeb();
HtmlDocument doc = hw.Load(url);
return doc.DocumentNode.OuterHtml;
}