Well keep in mind that MAME has no problem managing multiple displays and can easily clone a display to multiple monitors.
Ok so bear with me.....
You need three versions of mame and two instances of a custom built front-end. (Or a front-end that handles two lists on two displays... either way).
Ok so the front-end is launched twice... one instance is displayed on monitor #1, the other on monitor #2
MAME #1, is for player one... it's configured to use p1's controls and ignore p2's. In addition it's configured to use monitor #1, and ignore the other.
When the person sitting at monitor #1, wants to play a single player game, the first instance of the FE always launches for mame #1.
MAME #2, is for player two... all of the above applies, but for instance of the fe #2, monitor #2, and player 2's controls respectively.
MAME #3, is for co-op. Here's where things get interesting. If either player 1 or 2 want to play co-op, they set their fe to 2 player mode. When they try to launch
a game, a message is sent to the other instance of the fe and a prompt is displayed for the other player what game it is, asking if they want to play. If they select yes,
MAME #3, is launched, which reads both players controls and clones the display to both monitors. If they select no, the original player gets a prompt stating that they
reject the request and they are dumped back to the game list.
MAME 1, 2, and 3 would be fairly simple to implement.... just the same instance of mame copied into three folders with each instance configured appropriately. Nothing I've described can't be done with a stock build of mame.
The front-end would take a bit of work, but it wouldn't be terribly difficult as long as you are satisfied with something simple. For a NES list, that'd probably be the best anyway.
So it'd be possible to do it on a single pc.... obviously running two builds of mame at the same time is heavy on the resources, but I just ran gorf and pacman as a test on this rather old pc and they both did fine. So as long as one sticked to older games, it'd be ok.