Why doesn't updating a particle settings object `frame_start` field work? (in Blender 2.8)
The problem was that I was setting frame_start first, to a value greater than the current (at the time) frame_end. frame_start needs to be less or equal than frame_end. The following version does work.

ps = modifier.particle_system.settings
ps.frame_end = explosion_frame + 2
ps.frame_start = explosion_frame