Combining characters and joiners should have been prefix rather than suffix/infix operators (and preferably in blocks by arity) so you'd always know without lookahead whether a grapheme cluster was complete.
(Prefix combining accents would also have made dead keys trivial rather than painful.)
(Prefix combining accents would also have made dead keys trivial rather than painful.)