Just use the multisource as it was intended ^_^ it's basically an
AND switch. You can use it like this.
If func_button
AND func_breakable are, active trigger the multisource.
Also I vaguely remember there being a problem with the func_breakable not resetting properly when a new round starts. Meaning if you break it once during round 1, it will still be broken in the second round...
QUOTE(For this I'd use a func_button @ multisource and button_target)
button_target:
- Flags: Start on
- Class info:
-- Target: master
Note:
With these settings it will only be triggered by shooting it, you could then create 2 custom textures like a monitor and a broken monitor. If you shoot it, the broken monitor texture should show. Just give the two texture these names: +0-youtexturename and +a-youtexturename
func_button:
- Flags: whatever you like to use
- Class info:
-- Target: master
multisource:
- Class info:
-- Name: master
-- Target: whatever you want activated by pressing the func_button.
Note 2:
The button_target will start as active, but once it is triggered (by shooting it) it will be inactive, this will result in the multisource not being able to trigger it's target. It needs both the button_target AND the func_button to be active. So once the button_target is inactive, you can press the func_button all you want and nothing will happen.
The only problem I forsee right now is that it will be active again once you shoot it once more 
I'll have a look at how this is fixable though ^_^
QUOTE(Hmm @ here we go. First the ones from above with a tiny modification (button_target = func_door))
func_door:
- Flags: start open,
- Class info:
-- Name: buttontarget
-- Target: master
-- delay before close: -1
-- Lip: the exact with of the moverange minus 1 to make it instant and perhaps show another texture on a brush inside the func_door
-- Fire on close: buttonmanager
-- Health: whatever you want
func_button:
- Flags: whatever you like to use
- Class info:
-- Target: master
multisource:
- Class info:
-- Name: master
-- Target: whatever you want activated by pressing the func_button.
And add this one:
mulitmanager:
Name: buttonmanager
Target1: buttontarget
optional target2 sound?
optional target3 spark?
optional target3 explosion?
optional target3 shake?
Now if the door is closed it should be deactivated and will also deactivate the mulitsource, I hope

Note 3:
I'll leave the testing of it to you since I don't feel like it