In theory (not used in practice) the following should be possible:
make a snapshot of the ScyllaDB keyspace
after the ScyllaDB snapshot is written, make a snapshot of corresponding ES mixed indices
restore all snapshots on separate temporary clusters (doing this manually on a production cluster is a no-go)
find the latest writetime in the ScyllaDB snapshot
try all ES index items later than this timestamp and remove them if the corresponding vertices cannot be retrieved from ScyllaDB
make a new snapshot of the ES mixed indices
This is rather cumbersome, of course, but it would allow for a fast restore of consistent indices (this does not deal with the other issue, the partially succeeded transactions).