Just to follow up, it seems that this may be related to my .tm_properties file. I have
projectDirectory = "${TM_FILEPATH/(\/Users\/jon\/Development\/Git\/[^\/]+).*/$1/}"
windowTitle = "${projectDirectory/^.*\/([^\/]+)$/$1/} — $TM_DISPLAYNAME"
in the directory above the ones I was testing in.
Within those testing directories, TextMate takes up 100% CPU *for each tab I open*, until it uses all four of my cores (with four tabs). And commands don't work (possibly because of the high CPU usage, I guess). But when I move that .tm_properties file away, everything seems to go back to normal. If I put it back, the problem recurs.
I hope this helps pin down the issue.