Well, I figured out at least one problem: my S4 was configured totally wrong from the factory. It looks like the firmware was re-used from an S2 machine or something:
in /config/asic-freq.config:
option 'freq_value' '0781' #200M
option 'chip_freq' '200'
option 'timeout' '80'
This is not even remotely correct. 0781 isn't a valid value for anything according to the S4 manual, and the timeout is way too high. The manual says for 200MHz, timeout should be 20ms. So I changed it to:
option 'freq_value' '0782' #200M
option 'chip_freq' '200'
option 'timeout' '20'
Then rebooted the S4, and now my Diff1 on Eligius climbed from 256 to 512, to 1.02k, and my hashrate is climbing as well. After 2 minutes, it's now above 1.2TH/s when it used to show only like 50Gh/s. I'll update in a few hours on the status, but things are looking much better.