Michael,
What you want to do is not standard, fop2 should work in the more standard way possible. What you can do is try to replicate the user&device mode for FreePBX, where you define buttons as
USER/XXXX
And then have two types of astdb entries for relating users with real devices. And also you fire userevents if a user is logged in or logged out from the system. This mode in freepbx is also a "hack" or a "non standard" way of doing things. I am saying it is non standard because you are working it out OUTSIDE of native asterisk applications, and using some kind of dialplan hack. Dialplan hacks are not trackable via AMI.
I do not remember from memory the particularities of User & Device mode, you have the AMPUSER db entries, with the user/extension number, and then the DEVICE entries, with the "dial" value set to the real devices associated with the user, like SIP/4000&SIP/4001
There are things that are not going to work as you expect when you monitor multiple devices in one button, It is just plain NOT POSSIBLE to track them as you would expect. Suppose you have two real devices updating one button, one of them is registered and the other is not. What do you expect the button to show? Registered ? Unregistered ? FOP2 will honor the last status received, and that will be at least confusing.
In your case, if you have more than one device per user/extension, I would expect that device to be reached by dialing the same number, and having just one queue member for it using Local/that-unique-number. Having queue members for every device does not seem correct to me, it will lead to queue_log pollution, the queue application trying to deal with lots of members that are not really needed.
Not sure how you know on what device a user is really logged into, or if it uses several devices at the same time, a kind of followme scenario, but just ONE Local/xxxx queue member is the more correct way to handle it (imho).
Best regards,