Oh dear, I'm so stupid :/
Just realised that of course I'm going to get an offset, I'm using a step input. The final output is the value of that step attenuated/amplified by the model parameters.
If I use an impulse input it should converge back to zero (I'm off to do that now).
And of course giving my first integrator a value of 1 is not what I wanted to do either, if I want the system at rest to begin with (I'm giving it an initial velocity if I do that, right?).
(embarrassed)