I am not completely sure of this, but I remember reading something similar a month back. Initially you need to better understand what these 3 applications does to the payment channels.
Pierre Rochard's Lightning Power Node Launcher :The Node Launcher is a GUI application for syncing Lightning network and the Bitcoin Network together. As you have said, they hold the keys for your coins. But if you need to interact with Bitcoin Network you should be having either Joule or Zap Wallet with you. The private keys are stored in the node and they are used for signing the transaction. Without the Node, you can never create a channel with your Joule Extension. But on the other hand, (though I have not used the Zap Wallet to confirm this) you can create a lnd along with your bitcoin wallet during setting up of the Zap Wallet.
Zap Desktop Wallet :They can either be used as a standalone application only for sending and receiving of your bitcoins or can act both as a lnd and wallet. Another thing is that, they can be integrated with your own node and can be used.
Joule Chrome Extension :They are just an GUI extension for your node, and can never be used without connnecting to a Lnd.
Coming to your questions,
Where are the keys for these satoshis being held?
Since you have integrated both the Launcher and the Zap Wallet, they are being held in the Node Launcher. If you are using Joule Extension and Node Launcher they are stored in the Node Launcher. If you are only using Zap Wallet, then your Zap Wallet holds your keys.
How was I able to see satoshis in the Zap Desktop application without doing anything except clicking a button?
They are because of the macaroons (or simply called cookies). The button you have clicked belongs to the Node Launcher and not to the Zap Wallet. So it makes sense if Zap Wallet shows the balance.
How is this possible?
Both Joule Extension and Zap Wallets are integrated with the Node Launcher which holds your keys. This is why you can see the balance in both of them.
From what I understand so far, it's something to do with the "Macaroons" that are included in the lightning nodes files? Maybe all of the data and "keys" are stored in the lightning nodes files, and both Joule extension and Zap Desktop are just an interface to those files/funds?
Yes, exactly true. Macaroons are some sort of cookies which stores small info about these lnd and their balances. You can read more about macaroons here :
https://github.com/lightningnetwork/lnd/blob/master/docs/macaroons.mdP.S : If my post seems to be wrong, kindly correct them. It's better to understand anything correctly rather than being wrong.