Canon DSLR - Read camera "busy" state
Canon provides extensive control and status of their cameras via the USB interface, and they provide a software library with a well-documented API to support that. However, this means that any significant remote control needs to be done from a CPU/platform that can be a USB host (and can run the library). It isn't going to be easy from an Arduino.

That said, you might not need that status anyway. The cameras have a significant amount of memory and can take a fairly sizable "burst" of pictures before all of them are written to the SD card. If you establish a minimum time interval between pictures of, say, 500 ms, you should be fine under most circumstances.

Disclosure: One of my current projects is a series of aerial photography "pods" that is based on Canon DSLRs.