2) How fast can arduino handle dma and interupts and what are speed considerations?, i.e. what is the shortest usleep in the main loop that can guarantee a constant step rate?
OK, what is the real
problem here? This reminds me of people who want to do multi-threading or "break out of interrupts". This sort of low-level question is meaningless without a context.
What device are you planning to use? Link to datasheet please.
What's all this about? ...
1) The arduino must take SPI packets of data (64 bytes I guess) as fast as possible
2) store SPI data in memory
3) constantly step through memory and switching IO pins
A disk drive? Don't you know
how big the packets are? Why does it have to be as fast as possible? How fast is that anyway?
These are $5 chips. They are good at what they do, opinions of other posters to the contrary. But you aren't going to make a 3D graphics card out of one.