the problem is the joystick is only looking for "Is in touch". So, when you touch Sprite4 to fire, that will also affect the joystick, because "Is in touch" is true.
To do a proper multi touch interface, you have to track each start and end of each touch by their index. It gets pretty tricky but is possible.
for your example, you can (mostly) get it to do what you want by adding another condition to both event 3 and 4 that says:
Touch > Not is touching Sprite4
( to do a Not, add a condition that says Touch > Is touching Sprite4 and then right-click it and choose invert )
The only problem I had with this simplified multi touch, is that the joystick stops responding if you hold your finger on the fire button (sprite4).