How to know when a workflow ends?

Instead of scheduling a workflow on a list, I would recommend to run the workflows recursively.

You can count your list items on initialization and hand over a counter number recursively. When the counter = list item count, it is the last item.

2 Likes