To go back to the M3 and M4 - they are mutually exclusive, because on most spindle controllers they must be, or a fault occurs.
They are not general Input/Output commands, they are output only. On the spindle page, you will see in the top left hand corner, that you have to allocate M3 and M4 to outputs, and then allocate the outputs to pins on te Port and Pins/Outputs page. If you do not need M3 and M4, do not allocate them.
You do not say what additional outputs you require, but if they are for your limit switches/home switches, they are already catered for, just allocate them to the pins. If the are general outputs for tiurning something on, then allocate an #output to a pin and turn that on, either by using a button, which you can add to your screen set, or a macro.
When you write the GCode, write M*** in the code and it will turn on the output, you will need an off command as well.
You can limit M3 and M4 by ony using one of them, e.g. do not allocate M4, and use M3 and M5 for on and off, or you could use the coolant commands in a similar way, but I think it is better to write you own command specifically for what you want to do, rather than alter something that is there for a specific purpose.
The various commands and OEM codes are shown in Hoods post at the top of the main forum page, and also in the Wikki.