What is an efficient clustering approach for grouping multivariate timeseries data into optimally persistent states?
You can trivially modify DBSCAN (see GDBSCAN) to take time into account rather than dropping the precious time information.

I.e. neighbors are those points that are within a time difference of dt, and that have a minimum similarity.

Apart from that, classic "change in mean" analysis techniques for time series come to my mind. Maybe also changepoint detection.