سلام
شما باید منطق برنامه رو عوض کنید.
اول بدونید که امکان بررسی وجود اینترنت به طور قطعی نیست.
باید مثل بقیه برنامه ها عمل کنید. یعنی همون لحظه که کار دارید وصل شید و انتظار گرفتن خطای اتصال به اینترنت رو داشته باشید.
بهتره این عملیات تغییر دیتابیس رو به صورت زمان بندی شده انجام ندین(به همون دلایلی که خودتون دیدین و دلایل دیگه) ، بلکه یک قسمت جدا گانه برا این عملیات در برنامه آماده کنید، تا کاربر به خواست خودش هر لحظه که مایل بود این عملیات پر هزینه رو انجام بده .
در مورد قسمتهای دیگه سوالتون هم عرض کنم که باید از تکنیک های چند پردازشی استفاده کنید(وابسته به هیچ فرمی نباشه ) که خودش دنیایی هست و در این پست نمی گنجه.