A couple of things to keep in mind that I discovered when I wrote my driver is that there is a 1 second limitation when using V4L2. Also, the response from Raspistill will seem slow because the first few frames are always dropped by design. This results in a 1 second exposure actually needing 7 or 8 seconds to complete.