I can confirm a very similar bug in 3.9.4.
I have a Failover scenario with Default Gateway as weight 50 and a secondary as weight 5.
After a restart because of a little blackout, I found ZS configured correctly as “Failover”, but the two connections were both “Active” (!), which was wrong. Wrong also because all traffic passed trough the secondary (weight 5). I’m sorry, I didn’t have a screenshot of this situation, but I’m 100% sure about this.
I tried to inverse/change weights without any effect.
The only way I had to restore the previous situation was to set ZS to “Load Balancing and Failover”+Save and then back to “Failover”+Save.