In my webdriver test, I have the below. Despite the SetPageLoadTimeout, the script is still executing the next line before allowing the page to load.
driver.FindElement(By.LinkText("MySurvey")).Click();
driver.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromSeconds(120));