Alexander Zverev delivered under pressure to set up a semi-final with Novak Djokovic at the ATP Finals.