I am not sure that it does.
I agree, I slowed the video way down and they are happening separately.
I don't really follow your home/limit switch combination. It looks to me like you have:
home-y (input 001)
home-y2 (input 000)
home-x (input 002)
home-z (input 003)
The bit I'm confused on is:
max-x (input 004)
min-y (input 005)
What you are after can be achieved with 4 switches. If your axis travels lengths (MIN and MAX LIMIT) are properly input, unless you lose steps, you wont run past the max or the min. LinuxCNC sets and obeys these soft limits automatically.
Try using PNCCONF to set up the following:
input 000 -> Y2 Minimum Limit + Home
input 001 -> Y Minimum Limit + Home
input 002 -> X Minimum Limit + Home
input 003 -> Z Minimum Limit + Home (I think this is correct, but if it goes the wrong way then use Z Maximum Limit + Home)
I haven't seen anything but your hal and ini files, but I cant see an immediate reason why you need to use gpio.004 and gpio.005 as you did previously.
Also, your HOME_SEQUENCE (Z = 0, X = 1, Y and Y2 = -2) is correct, you can choose to do tandem axis last (-2 in your case).
For HOME_SEQUENCE, you are also not required to start at 0, and you can use the - sign on axes that are not tandem as well to designate that you don't want to be able to jog the axis until it is homed. In this example, you have to start the count at 1, because "-0" doesn't work. I choose to do this on my table so it cannot be jogged at all prior to homing (prevents crashes into hard stops, etc.). This is not well (maybe not at all) documented, but it does work fine.
My HOME_SEQUENCE entries to achieve this are as follows:
Z = -1
X = -2
Y and Y2 = -3