The v4l2grab hang was due to a format error. Running mplayer revealed that there were only half of the expected pixels being output:
Frame too small! (921600<1843200) Wrong format?
After adjusting the YCbCr format mplayer now runs without the above, and v4l2grab will complete with the grabbed image.
The "Failed to query" kernel message is still there, but it does not seem to be fatal.