@hokru yes, I can confirm that adding
psi4.core.set_local_option('SCF', 'GUESS', 'READ')
after my psi4.set_options
call works around this bug and makes the guess load correctly in my code example above.
Very interesting about using restart_file, thank you. I saw that documentation and tried using restart_file with gradient(), not knowing that it only works with energy(). Seeing it not work, I looked around and got the impression from a forum post here (Restarting a SCF with another reference SCF wavefunction - #7 by jmisiewicz) that restart_file was an older mechanism, rather than preferred.