Just as a follow-up for anyone else out there with the same problems, this
is what I did to "fix" it:
BasicRender worked better than FastRender on animations, but FastRender did
a better job on keeping object faces "solid", so in my environment class, I
switch between the two as necessary. Also, FastRender does object sorting
using the screenZ property, so I overrode the built-in calculation and
manually sorted the objects on my own. This created a problem with complex
objects, like one partially inside another, so I created a separate mesh
with the two objects joined as one, and use the separate objects for
animation and switch to the single combined on completion. Also, I used the
mesh sortType (which defaults to center), to switch between front and back
depending on which method sorted which object faces better (large objects
with large faces worked better with back, and small objects worked better
with front). Additionally, since this specific application didn't require
user manipulation, just built-in animations, I was able to use perspectives
that were advantageous to me and gave the "correct" view I was looking for.
Finally, I applied a WireframeMaterial to the objects for development and
placement, because that allowed me to get precise positioning over the
objects as the textured object could give misleading results.
All in all, I was able to get satisfactory results both for myself and the
customer. If anyone else has additional comments or tips, I would still
appreciate them. Now to rebuild it all in Broomstick.....