Linda Noskova won a two-and-a-half hour battle against Jessica Pegula to reach her first WTA 1000 final.