If formRun() didn't return a FormRun object, it would mean is a huge bug in AX kernel. But I think it's more likely that you gave us wrong information. You most likely meant caller().
I didn't remember the functionality in detail and you didn't give us any information either, so I didn't know that SalesAvailableDlvDates actually isn't called directly by SalesTable form. Fortunately the error message says very clearly that the caller is SalesCalcAvailableDlvDates_SalesLine class and not SalesTable form.
It's because SalesAvailableDlvDates is merely a dialog for SalesCalcAvailableDlvDates_SalesLine class and therefore you're making your change at a wrong level - you should utilize the class. If you want to update an extra field, you shouldn't develop the whole thing again; you could also get into conflicts with what the standard logic does. Unfortunately there is no nice how to add another field to the list in SalesCalcAvailableDlvDates_SalesLine.updateCaller(), therefore I suggest you add a delegate there via overlayering, handle it in your own package and log an extension request on Connect.