Well, with a little more research I've found that ereg_replace really is that slow. I always knew it was slow, but wow...
Searching the forums I found this bit of code:
$content = $full_text;
$content=substr($content,0,$chars);
$content=substr($content,0,strrpos($content," "));
Which works very well, and quite a bit faster. I may try rewriting the ereg_replace with a preg_replace or str_replace later on, but this seems good for now.