Hello Andrei,
I managed to improve the status of the vga_text mode. So GRUB2 was restarting when reaching the end of the screen. I traced this to the screen_read_char which is issued when the inc_y == ROWS (this call would break GRUB2). I didn't go even further with the debug though. I just clear the screen and set grub_curr_pos.y to 0 and by using set pager=1 I can browse with enter through all the output page by page. It's not ideal but it was fast and practical.
Linux though still doesn't boot. I am currently looking why the vga_text mode is selected over gfxterm which is not even configured properly.
Thanks,
Grigore