It'll run for as long as the client stays connected, there's no max duration in that case. If it's only used for moderation purposes the easiest solution is just to hold the user there. You could run up to 6 requests in parallel for deletes if you wanted to max out speed.
Otherwise I would throw the deletion request in a queue of some sort to ensure it gets processed in full if you think the client is going to disconnect and you won't have enough time to finish all the deletes/you want be able to retry them. If you just ctx.waitUntil'd and the deletes failed (like r2 was having issues or just transient stuff), you'd never know