Ideally cs_wallet and mapWallet would be private members, and all methods would acquire the lock themselves. But ideally we'd completely rewrite the wallet with deterministic key support, multisig/off-device-signing support, etc.