At some point I've tried all 3 solutions, and settled for ACF for many reasons. There are some very important details missing from this post that many might find helpful. While ACF does not yet support inner blocks, so building sections, containers, columns etc..., are challenging, as a field you can use the whole TinyMCE editor (classic editor), and that's how I build my sections and containers. Last time I checked, Lazy Blocks has a field to have inner blocks, but does not have the ability to use the classic editor. The classic editor at this point can be very useful as it has the toolbar to generate shortcodes from themes and plugins.

The most important thing though is that ACF has tons of development documentation, tutorials, and videos all over the internet, and the ability to create layouts not just for the front end, but the backend that looks like a professional block, and not a sloppy, cheap looking block, which is 99% of the cases found today. You can accomplish excellent backsite design results because ACF has the ability to go from edit to preview modes, either manually or automatically, and have the option to organize your fields with Tabs, Accordions, and columns with variable widths.

However, the biggest plus for ACF is the developer - Elliot Condon. I dealt with him numerous times in the past months, reporting bugs and suggestions to him, and he was always polite, answered in a timely manner, very accommodating, despite the fact that he only recently got married and had a child just a few weeks ago... His pricing, and licensing conditions of the Pro plugin, are one of the most fair and generous deals one can find in the marketplace, and that's the cherry on the cake...

Handlebars (used within Lazy Blocks), is easier to learn and use that php, but at the same time, very limited, if you want to create some complex blocks.

Any of those solutions beats making blocks with React and Javascript, and you don't have to worry about a million new things to learn and deal with, and when making changes to existing blocks, deprecating things... life is too short !!!