Luke Humphries punished a missed 121 from James Wade and put himself on the brink of his first World Matchplay final with a majestic 156 checkout.