Have I missed some setting somewhere which will prevent scaling to non-integer pixels?
This is not really possible as far as I know. As Drwyd said, if you toggle the scale line width button, it may solve a lot of the problems. But since you're working in a vector program, situations as you described will occur.
If you create a shape that initially has non-integer dimensions (60 x 50,3 pixels for example) the state of the scale line width button won't matter. Only way to fix this would be to scale its height to 50 pixels (disable the lock aspect ratio button first, otherwise the width will now have a non-integer value) which causes a bit of stretching. Or scale the dimensions by a factor of 10 making the shape 600 x 503 pixels.

You can further decrease these problems by enabling Snap to grid. But even then, don't act surprised if occasionally you still get non-integer dimensions