I sent BTC today via Ledger Nano S and chose Standard fee which was about 60+ sats/byte but when I checked the transaction, it used 45 sats/byte and plus sent BTC to another address including the receiving address I added on it's own. I checked Ledger Live and my BTC is still there but why does this happen and why it sends to another address and chooses to send less fee?
There is a difference between sat/B and sat/vB (virtual Byte). And that's probably what you are looking at here.
Since the SegWit soft fork, the maximum size of a block is no longer measured in bytes, but in weight units.
4WU = 1 vByte
The witness data of a (segwit) transaction weights 1 WU per Byte.
The non-witness data weights 4 WU per Byte.
That's absolutely not a problem at all. Just some conversion stuff.
Regarding your second address, this is a change address.
This is a crucial element of bitcoin, take a look at
https://en.bitcoin.it/wiki/Change.
In BTC, there are no 'coins'. Just UTXO (unspent transaction outputs). Whenever you create a transaction, you are using at least 1 Input.
And if you are not completely 'using' it, you create 2 outputs, with one of them is an address of yours (a change address).
Is Ledger too like exchanges that keep the remaining fee?
Hell no!
Ledger has 0 control over your funds or anything else.
You always have full control.