### Godot version

4.2.dev [6588a4a]

### System information

N/A

### Issue description

While using `Button`s and when setting `text_overrun_behavior` to anything that adds ellipsis, they are drawn completely ignoring the outline values of the text. `Label` is able to do it correctly:

![image](https://github.com/godotengine/godot/assets/30739239/5154c841-479e-478b-aaa5-7b2e61876bed)

### Steps to reproduce

Create a `Button` and set `text_overrun_behavior` to anything that has ellipsis in it.

### Minimal reproduction project

N/A, trivially reproducible.
word_count++;
				}
			}
			if (p_break_flags.has_flag(BREAK_GRAPHEME_BOUND) && word_count == 0) {
				last_safe_break = i;
			}
		}
		width += l_gl[i].advance;
	}
	if (l_size > 0) {
		if (lines.size() == 0 || (lines[lines.size() - 1] < range.y && prev_safe_break < l_size)) {
			if (p_break_flags.has_flag(BREAK_TRIM_EDGE_SPACES)) {
				int start_pos = (prev_safe_break < l_size) ? prev_safe_break : l_size - 1;
				int end_pos = l_size - 1;
				while (trim_next && (start_pos < end_pos) && ((l_gl[start_pos].flags & GRAPHEME_IS_SPACE) == GRAPHEME_IS_SPACE || (l_gl[start_pos].flags & GRAPHEME_IS_BREAK_HARD) == GRAPHEME_IS_BREAK_HARD || (l_gl[start_pos].flags & GRAPHEME_IS_BREAK_SOFT) == GRAPHEME_IS_BREAK_SOFT)) {
					start_pos += l_gl[start_pos].count;
				}
				lines.push_back(l_gl[start_pos].start);
			} else {
				lines.push_back(line_start);
			}
			lines.push_back(range.y);
		}
	} else {
		lines.push_back(0);
		lines.push_back(0);
	}
	return lines;
}
PackedInt32Array TextServer::shaped_text_get_line_breaks(const RID &p_shaped, double p_width, int64_t p_start, BitField<TextServer::LineBreakFlag> p_break_flags) const {