Once someone finds a winning block, they're rewarded with a number of Bitcoin. This subsidies the cost that goes into mining that block. However the reward halves after every 210k blocks, so as the reward goes down, miners will prefer to only include transactions with high fee. Eventually the true cost of mining will reflect in the transaction fee.
And to add to the "it costs 657.6kWh to process a transaction": energy is used to produce a block, which contains an arbitrarily defined number of transactions. Right now, Bitcoin Core limits each block to 1MB, which works out to about 2k transactions per block. If Bitcoin Core were to increase the limit to say 10MB, the energy used to produce a block doesn't change, but the energy used to process a transaction goes down tenfold.