I've got two questions on bitcoin transaction fees, the first one relating to the bitcoin base layer and the second one relating to the second layer:
1) Who determines the bitcoin transaction fees? Is it the sender? For example, if the sender wants to increase the likelihood of miners including the senders transaction into the candidate block, then the sender can set a higher fee that they are willing to forgo?
If this is the case, then how come most of the common exchanges have a set bitcoin withdrawal fee (usually around 0.0004 bitcoin or around $20)?
2) In a lightning network, If A wants to send to D and it appears that the only way to construct a route from A to D is if A goes through the payment channels A -> B -> C -> D, then does that mean in order B and C to act as "intermediaries", they must be compensated by transaction fees? And if so, does that mean if we have A -> B -> C -> ... -> Z, then transaction fees would be really higher, potentially higher than if A sent directly to Z via Bitcoin base layer? And how are these transaction fees determined within the lightning network?