Using a string value (multistate) as Y-Axis

Here's 2 things you could try;

1). The Advanced JSON Input you mentioned. I do have this example where each doc had a start time and a duration in sections and the user wanted the chart to the totals of everything active at any particular time. So this user could pad the data based on information in each document. Your case is different in that each doc changes a state and doesn't have any information on when the next state change happens. But here's the example;

2). Have you tried Timelion? It was a plugin but is now built in to Kibana. It has a derivative function that might work with your change of state type data.
Check out; Timelion: The time series composer for Kibana | Elastic Blog
And; Timelion | Kibana Guide [8.11] | Elastic

Regards,
Lee