I found a major contributor to the 715 microsecond delay. It's the stepper driver hardware! When I disconnect power to it, the delay is diminished! Tonight I'll put in an optoisolator! I've should have done this from the beginning. This is the driver I'm using:
Overall, I like the DDS approach. I'm now able to change out the waveform in the lookup table so I can use it for other purposes. And I've learned about bitwise manipulation and binary math. I'm glad it was suggested by @MarkT.
The AccelStepper library is good, but not in a fixed time-step loop environment. This whole thread is for a robot project involving stepper motors to compensate an unstable condition. The feedback control system requires a fixed time step, so I'm very emphatic about this. I've been using regular motors, but they have very little torque at low RPM. The steppers have their highest torque at low RPM, so they are ideal for my situation. And because the steppers don't need gearboxes, they're actually a cheaper solution.
So I really need to make this work. Hopefully the optoisolator will solve the problem. If not, I have no problem dedicating a second CPU for this. Not sure what the fastest communication will be between the CPUs. Maybe I'll use the DAC on the main CPU, and the ADC on the DDS CPU. ADCs only requre 42 microseconds.