Depends wholly on requirements; block grid is great but I stick with block list (allowing users to put components in different areas causes me a lot of pain when testing, but maybe that’s just me…)
I’d almost always opt for option 2, where you have a ‘layout’ option in the block and then flip the output. This is normally a trivial update to do through CSS (using flex-direction or grid templates).