Any of those help This sounds like a fairly classic Scatter/Gather pattern, which you can implement in one Saga. At the beginning, you'll have some logic that determines which steps (all of which can run in parallel) need doing. You should send commands to have all those things done, and record in your saga data which steps you are awaiting responses from.
How to handle very long running processes in NServiceBus
hope this fix your issue I'd consider breaking it down into smaller batches (not necessarily one message per record) and having a separate endpoint service specifically for this process so that other stuff is not held up. If breaking it into batches and you care about the when they all complete then I'd recommend using a saga to track that state.
NServiceBus handling long running process - Transaction
seems to work fine By default all database actions are part of a distributed transaction. You are not really clear on the type of locking that you want to prevent. If this is really a table lock how did it get a table lock?
BusConfiguration busConfiguration = new BusConfiguration();
Any of those help I would not use a saga for this. Sagas should be lightweight and are designed for orchestration rather than performing work. They are started by messages rather than scheduled. You can achieve your ends by using the built-in scheduler. I've not used it, but it looks simple enough.
How should we handle a long running process using nservicebus