I tried this on version 9 on development env. I have a homepage with some components with lazy load and with a menu. If I click on any link of the menu the new page only start opening when the lazy load finish his job. Will this be different in a production env?

That helps to change page between different blocks loading. But if one block takes 1 min to load and the link click happen during the load of that block the user will wait 1 min for the page to change. There is anyway of avoiding this?

What happens here is that the platform serializes dynamic web requests for the same session. That is done by design mainly to prevent inconsistent state in session objects. Imagine having two different requests reading and writing concurrently to the same session object.

I don't think there's any way around this mechanism. But, if your menu links are navigate (or submit), your browser should give priority to it and in that case it would be the next web request to be served. So you would have to wait, at most, the time for the current lazy web block to load.