Think on it to be as simple, usable and intuitive as possible. I believe that a specific PANDORA button instead of a generic "menu" button would give the console an unique identity, without any doubt on the function of this button to anyone. The Pandora button should be ONLY used by the OS, so the user would have the simplest and most intuitive way to access the OS features anytime and anywhere.
The Pandora button woundn't quit the running application: it would just freeze the app (effectively acting as "universal pause") showing an overlay menu with the OS options. Simply pressing it again would return to the app without further interference.
A combo like FN-Pandora could be user-configurable only as shortcut to an OS function: switch to next running app (this should be the default), close current app, hibernate...
In order to avoid accidentally pressing the Pandora button, the "1 sec hold time" could be implemented but always as an user-configurable setting. It should be "off" by default, so a single press would show/hide the OS menu. If the user wants, then he could choose to enable the "1 sec hold time" option for the Pandora button to have effect.
The Select and Start buttons would be application-defined. If an application doesn't need a Menu button, then everything will be okay. If an application requires a kind of "Menu" button, then it could implement it in the way of the programmer wants: FN-Select, a shoulder button, a specific key...
About the button order:
[Pandora] (tied to the OS)
[Select] (fully app-defined, including hold and FN-combo)
[Start] (fully app-defined, including hold and FN-combo)And the Pandora configuration settings for the Pandora button would be only two:
1 second hold delay [ ]
FN-Pandora action [switch to next app |V]
QUOTE
Showing a graphical selector probably means that the OS needs to "own" the top video overlay, so access to the display controller needs to be restricted.
I don't think that. The underlying OS would freeze the app context including the display controller state (the same that would be done on OS Sleep or Hibernate). It could just render a darkened picture of the application's screen in the background while showing the OS menu on top of it.