Python script has no effect when running as background
I was missing something obvious: I need to render from within the script after I make the changes I need. This exchange helped. Otherwise it renders the image with the command line arguments before the script is run. If I launched Blender with the script or ran the script normally I could run a render later and it worked. 

Adding bpy.ops.render.render(write_still=True) worked. All the render settings are set within the scene with the UI.