You can do this with sendmany.
It accepts a minconf parameter (which defaults to 1, for 1 confirmation) - it will spend outputs that have at least minconf number of confirmations.
Setting minconf=0 will allow you to spend unconfirmed coins, such as from the change output of a previous sendmany transaction.
Yes, use separate wallets.
Bitcoin Core now supports loading multiple wallets simultaneously.
This isn't an exact replacement; you can't transfer between those wallets at zero cost. But on the other hand, the coins are actually physically separated, rather than being virtual bean counters within one wallet.
Yes but not by default.
C-lightning uses a pluggable Bitcoin backend. The default one, bcli, will use the bitcoin-cli executable to make requests to a bitcoind.
It exposes bitcoin-cli's rpcconnect startup option to lightningd which does not not support onion hosts. And you probably don't want it to as it is not meant to be exposed.
If you want to run C-...