Trying to wrap around first word of multiple word strings with a widget_title() filter, only works on two word strings and not more than two

You should check out the filters assigned to widget_title

add_action('wp_footer',function(){
    global $wp_filter;
    printf('<h2>Debug:</h2><pre>%s</pre>',print_r( $wp_filter['widget_title'],true));
});

to see if there is anything unusual.

Also try the Twenty Twelve theme (I don’t see this behaviour there) and deactive all plugins.