Xorg was starting before udev could finish the monitor command. This prevented the X server from having access to the input devices. For some reason, any subsequent starts would be fine.
Adding a small delay to the X server start and triggering a request for device events from the kernel after a delay seems to fix this issue.
- Add a DEBUGGING flag
- Make the location of the unix socket configurable
While I was here I moved all the priority configs in supervisord to the top. I like it better there