Lyndon word factorization Background
A Lyndon word is a non-empty string which is strictly lexicographically smaller than all its other rotations. It is possible to factor any string uniquely as the concatenation of Lyndon words such that these subwords are lexicographically non-increasing; your challenge is to do this as succinctly as possible.
Details
You should implement a function or program which enumerates the Lyndon word factorization of any printable ASCII string, in order, outputting the resultant substrings as an array or stream of some kind. Characters should be compared by their code points, and all standard input and output methods are allowed. As usual for code-golf, the shortest program in bytes wins.
Test Cases
''           []
'C'          ['C']
'aaaaa'      ['a', 'a', 'a', 'a', 'a']
'K| '        ['K|', ' ']
'abaca'      ['abac', 'a']
'9_-$'       ['9_', '-', '$']
'P&amp;O(;'      ['P', '&amp;O(;']
'xhya{Wd$'   ['x', 'hy', 'a{', 'Wd', '$']
'j`M?LO!!Y'  ['j', '`', 'M', '?LO', '!!Y']
'!9!TZ'      ['!9!TZ']
'vMMe'       ['v', 'MMe']
'b5A9A9&lt;5{0' ['b', '5A9A9&lt;5{', '0']
Pyth, 17 16 bytes

-1 byte thanks to isaacg!

hf!ff&gt;Y&gt;YZUYT+./


Try it online!

Explanation

hf!ff&gt;Y&gt;YZUYT+./
              ./    Take all possible disjoint substring sets of [the input]
             +      plus [the input] itself (for the null string case).
 f                  Filter for only those sets which
  !f        T       for none of the substrings
    f  &gt;YZUY        is there a suffix of the substring
     &gt;Y             lexographically smaller than the substring itself.
h                   Return the first (i.e. the shortest) such set of substrings.