I would say that the conversion may have been the problem. I haven't mashed with dark grains before and I've never really felt the need to do a conversion test (and it's worked fine thus far). The drop in pH could have been the problem. I will be sure to check for that next time. With the fermentation, the krausen fell really early and I still gave it a full week in the primary beyond that. So, given that it carbonated, the temp in the mash was right, and I gave it a good 2-3 weeks of fermentation time, I'm inclined to say you're right about the mash pH being too low.
Although, I did nail my target gravity...