So, I added some code to tell me what % of an animation was still playing, and used that to fade in or out the raise/lower arm angle. Much cleaner. Yet another of those things that the end-user never notices except when its wrong.
I also increased the # of simultaneous sounds in the mixer from 16 to ~256 or so. Now that more sounds exist independently from the player, and enemies can and do move around the level making doors open & close and footstep sounds, there were times when sounds would audibly drop out, including some long-lived looping sounds, like the fan on the industrial level.
It shouldn't cause clipping, b/c most of the sounds will be at zero volume most of the time anyway.
I also added code to scale back new particle counts based on how many are alive. Each type of particle that can get populous during combat, like smoke, sparks trails, and rock debris now scales back the # of new particles per shot based on how close the population is to the limit. If you are near or above the limit, you only get one new particle, per request, instead of the normal 3 or 4. Theres no hard limit, so particles won't disappear before your eyes, but it will try to keep the scene looking busy without doing more work than needed.
Just now I fixed the scanning, which I recently changed so the scanner works on all entities. It now uses the correct side to scan things, rather than just the bounding box's thin side ( which is what you want for a flat decal ), and shows the effect even when you've scanned something before.