I have an odd little issue that I'm not sure of the cause of. Has anyone else encountered a problem with other inputs being taken multiple times when analogue sticks are nudged?
I'm making a top-down game where the player has eight-directional movement, whether using the keyboard, D-pad, or analogue sticks. These all share simple up, down, left, and right inputs on the input map. Adjusting the deadzones on these inputs makes no difference to my problem.

I'm using a singleton-free tree structure where all nodes are owned by a Main node, with some manager nodes in between (world manager, audio manager, etc). The Main node features an input_enabled variable that the player character checks to tell whether or not he can currently accept gameplay inputs (move, attack, etc).
The player character uses a simple state machine to determine what he's currently doing. Starting from his _process() function, if his state is "default", and main.input_enabled is true, he can move around by accepting directional inputs. An animation tree sets his sprite animation as he changes movement direction.

Also owned by Main is a systems manager that handles a few initial game settings and setting fullscreen on/off.

Finally, the Main node also handles pausing/unpausing the tree manually. This sets Main to a "player_pause" state that the player can unpause at will, returning Main to the "play" state. If another state is active, such as when the game is in the middle of transitioning from room to room, the input is ignored.

Now, at last, onto the problem I'm having: if the player is using a controller, the analogue inputs being received by the player character seem to interfere with the fullscreen and pause inputs being received by the system manager and Main nodes, respectively.
If either analogue stick is nudged very slightly away from its zero point - or sometimes, if it's been nudged and now appears to be resting at zero - inputs from the fullscreen/pause buttons on the controller will be received two or three times, causing obvious problems for the player. From the player's perspective, the inputs feel unreliable - sometimes pressing the fullscreen button toggles fullscreen, sometimes it flickers and toggles fullscreen, and sometimes it just flickers. Pressing the pause button sometimes works, and sometimes appears to do nothing as the game pauses for (what I assume to be) less than a single frame.

Using the keyboard inputs while the analogue sticks are nudged seems to work as intended - the problem only manifests when using the controller buttons, at least as far as I can tell after testing it for a while.
I'm using a PS3 controller (Dualshock 3) using SCPToolkit to get the PC to see it as an XBox 360 controller. I don't think this is the cause, though - I'm sure problem is somewhere in my code, as I have another, similar game that features simpler, 360-degree analogue movement (something I didn't want for this game) and otherwise-identical controls, and the problem is not present there.
Any advice or suggestions would be very much appreciated.