Will somethin like this work well? 
Yes.  
Official Mame comes with ctrlr files for HotRod, X-Arcade, and SlikStik that do something like this.  You might want to take a look at them as examples, but take note: they don't have a "mame button" so use combos of just normal keys, and I hate their UI_Cancel mapping (so I change it, see below).
My suggestions: 
- Set UI_Select to p1 button1.  Easier and pretty intuitive.
- Be careful about UI_Cancel.  I'd be 
very reluctant to make it close to any other combo or any common key presses.  Which is why I don't like the hotrod etc UI_cancel, and one reason I'm suggesting not have UI_Select as you said; if the joystick bounced from down to up before you let go of your mame button, or you pressed right+up & mame when you want to pause, oops. 

  How about mame button + start1 + p1 up?  If not that, at least do mame + p1up + not p1left + not p1right.  (not: when mapping press twice quickly)
- I like the idea of the "mame" button, over using combos of common buttons.  The Ipac and keywiz have similar buttons to your mame called shift & shazaaam, respectively; the difference between your's and those is the shifting/shazaaaming is done inside their encoders instead of mame.\.  OTOH, others here might suggest not even having the separate mame button.  Up to you.
- Setup to your liking using mame's tab, "Input (general)", then copy cfg/default.cfg to ctrlr/
yourname.cfg.  Then use the ctrlr file (what I do), or just keep it for backup.
- Don't forget the UI directions (UI_up, UI_down, etc), and maybe (depending on your layout) the dual stick directions (P1_joystickright_up, P1_joystickleft_up, etc).
Good luck!