Ender 3 has developed a tendancy to skip Y steps
While I first experienced layer shifts a couple times before upgrading, only while using extreme acceleration settings (3000 mm/s² is fairly extreme for moving the bed), their regular occurrance, which is near-constant with some files, seems to have started after I upgraded the firmware to Marlin 1.1.9. Reverting to the manufacturer's firmware, with no mechanical changes to the printer whatsoever, has the same file printing now with no layer shifts. So I think it's safe to say that this is a firmware problem - either a bug in Marlin, or a problem with the Ender 3 configuration headers for it. The bug tracker suggests this kind of thing is an ongoing issue; here are two among a large number of related bug tracker threads:


https://github.com/MarlinFirmware/Marlin/issues/9768
https://github.com/MarlinFirmware/Marlin/issues/10446


I'll try the latest 2.0.x, and/or turning features off one at a time in 1.1.9, and see if I can isolate the cause, then open a new question about bugs in Marlin causing layer shifts if needed.