Is this a topic for exchange operators or for traders?
These are only for traders as exchange operators has to follow algorithms in accordance to network, the heavy the network the more it generates transaction fee.
Both exchange officials and people who are going to withdraw must need to analyze about the "current network congestion" and from that they must decide about level of fee based on waiting time. There are lots of tools available to directly (without need of bothering about mempool size nor about count of unconfirmed tx) get us the fee structure from immediate confirmation to delayed confirmation.
Network congestion varies every time that's why we need to calculate for every withdrawal that we are making, so the fee basically defined by the network traffic BUT it varies on the exchange also, there are exchanges that has a low trading volume for a specific coin which means you can withdraw it with lower transaction fee.
Exchanges (or any service provider) must need to set withdraw fee that they are going to charge from the withdraw money. When there is big change on network congestion and exchange failed to alter may result in more transaction unconfirmed for longer duration.
Yeah, they can basically check what's going on with their transaction whether it is taking long. The very answer to this question is that, don't withdraw when the market is on fire to minimize your expenses. You can just convert it to stable coins for a while before clearing in.