American Madison Keys will take on top-ranked Aryna Sabalenka in the Australian Open final after outlasting world No.2 Iga Swiatek.