Hi Piyush ,
Why not add the logic in custom program to check if payment done through cheque or draft , to wait for 7 days before reversing the disconnection order , I feel this would be enough time for banks to process the cheque /draft to see if dishonored .if dishonored then take further collection steps other wise mark the disconnection document as complete and reverse the disconnection order.
PS: By wait for 7 days , i mean if pay mode = cheque/draft and BUDAT of payment doc <= 7 ,then skip this records , i have assumed your custom program runs every day.