If you have stimulus classes that don't actually exist in the data, then you can hardly model them. If they do exist (even at 1 event per run), then you shouldn't have got the collinearity message you did, assuming that their responses did not lie in censored-out data and that their times were not identical or nearly identical. Did you graph the 9 columns of the X matrix to see which ones are causing the problem? A column that is all zero, or a column that is a duplicate of another, is bad news.
You have a singular value that is almost exactly 0 -- not just small. This is usually caused by input-ing no events for a stimulus class, or by input-ing identical timing for 2 stimulus classes.