Thanks. Your second explanation made the problem clear, and I was able to reproduce it. This is a bug, so my original reply was incorrect.
When the menu opened, the runtime refreshed its contents for the MenuOpening event by recreating the native menu-item controls. On Windows, that removed the currently focused menu item, causing focus to revert to the previously focused control — Button 2 in your example — even though the File menu remained visibly open. Return was consequently being delivered to Button 2 instead of the menu.
I’ve fixed this so menu items are updated in place and keyboard focus remains inside the opened menu. The fix also preserves dynamic MenuOpening changes such as updating, checking, or adding menu items.
Tracked here: https://feedback.objo.dev/bug/1126
Thanks for the detailed reproduction steps.