Good questions, probably better asked on discuss.ipfs.io since there are people who may have more info than me. I think Badgerv3 should help once it gets added as an option if for no reason other than the Badger team doesn't really support any version other than the latest one. Badger does have transactions and go-ipfs is using them, although IIRC it can't make entire pin operations atomic since transactions have a maximum size. It will increase CPU utilization, but if you're concerned about blockstore stability you could try periodically running `ipfs repo verify` or enabling https://github.com/ipfs/go-ipfs/blob/master/docs/config.md#datastorehashonread.