What is the difference between /dev/tty* and /dev/bus/usb/001/002?

The /sys/bus/usb/devices/* tree describes the full physical USB topology, and contains metadata about each device.

The /dev/bus/usb/<bus number>/<device number> devices address each device in a simplified way (so you don't have to care about whether a device is connected directly or via one or more USB hubs, just pick the right bus) and allows passing raw USB packets to/from the device. With a USB serial converter, you might send a request packet and get back a response describing the current state of the serial port's handshaking lines.

The /dev/ttyACM* device, on the other hand, hides the complexity of the USB bus and allows you to control the serial port of the USB<->serial peripheral pretty much like a directly-connected serial port, with all the features of a Unix-style tty driver. Because of the latencies caused by the USB bus, some things may not work as well as with a "real" serial port: in particular, attempts to bit-bang the control lines with precise timing might not work.