By default there is no such concept as contract owner. Such concept exists only if it has been coded into the contract.
So it depends on what kind of functionality the contract has.
If by killing you mean selfdestruct, then the selfdestruct function requires an address parameter which specifies to which address all remaining Ethers are sent.
Gnosis Safe + Ownable
This is the easiest and most robust way. The fees on Gnosis Safe 2.0 are not that massive, as you pay only once at the transaction execution.
Gas fees as what they are and they are outside of your control.
Gnosis Safe is the latest release of the Gnosis Multisig Wallets. The Gnosis Safe Multisig wallet can be deployed either as a standalone contract, or (preferably) as a cheaper proxy contract that points to a known, trusted, legitimate, implementation contract of the Gnosis Safe Multisig wallet. Gnosis provides a ProxyFactory contract that can be used to ...
For the problem given, a simple governance contract would be the best, where there should be a function to propose (only by owners), vote (only by owners), and execute/cancel (only by owners).
Execution of proposal itself should be very simple, checking if proposal is already executed, and execution of submitted target, value, method signature, and calldata.