Add kqueue support to fsevents.m so that it will keep on showing all new events until the program is interrupted by a Control-C (SIGINT). Save off the event stream information and device UUID when that happens.
Modify fsevents.m to watch the entire system. Watch what happens if you mount a file system and modify things on that file system. You can create read/write disk images with Disk Utility.
Modify fsevents.m to watch more than one directory. Also watch what happens when you move a directory being watched. Find out where the directory got moved to by opening the root of the directory hierarchy with open() and then use fcntl() with F_GETPATH to see where it is living in the file system.