Solved:
I figured out what it was and it was very simple:
Basically, I didn't realize that for dual Y you can declare one end stop but for Z you have to declare both end stops
Here's what I had:
M574 X1 S1 P"io3.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin io3.in
M574 Y1 S1 P"io1.in" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin io1.in
M574 Z1 S1 P"io2.in" ; configure switch-type (e.g. microswitch) endstop for low end on Z via pin io2.in
Here's what I should have had:
; Endstops
M574 X1 S1 P"io3.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin io3.in
M574 Y1 S1 P"io1.in" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin io1.in
M574 Z1 S1 P"io2.in+io5.in" ; Z axis with two motors, individual min endstops for low end, active high via pins io2.in and io5.in
Here's what I ended up with:
; Endstops
M574 X1 S1 P"io3.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin io3.in
M574 Y1 S1 P"io1.in+io4.in" ; Y axis with two motors, individual min endstops for low end, active high via pins io1.in and io4.in
M574 Z1 S1 P"io2.in+io5.in" ; Z axis with two motors, individual min endstops for low end, active high via pins io2.in and io5.in
All three setups are valid for X and Y. Only the last two are valid for X, Y, and Z