@Mark Middlemist - we have "a lot" of session processor instances running in SF without any issues.
HOWEVER, we had a similar problem when we started out using the WindowsAzure.ServiceBus SDK years ago.
Our issue was that if the session was failed (due to an unhandled exception or some such), it would never be re-created properly so we had to restart the process it was running on.
Could it be that you are simply waiting way too long for the session to be closed?
By default the "new" SDK has a rather long timeout for sessions so we were forced to do something like the following:
var options = new ServiceBusSessionProcessorOptions()
{
AutoCompleteMessages = true,
MaxAutoLockRenewalDuration = TimeSpan.FromMinutes(15),
PrefetchCount = 100,
MaxConcurrentCallsPerSession = 1,
MaxConcurrentSessions = 1000,
});
Afterwards it has become possible to release the session early using the ProcessSessionMessageEventArgs input.
i.e "args.ReleaseSessions" - only use this if you know you are done with your session though :)