I'm fairly certain there is no way to stop it while it's performing a block transfer. Also triggering a reset might be problematic if the SGDMA is in the middle of a data read/write (especially if it's in the middle of a burst). Avalon doesn't allow a master to early terminate so resetting the SGDMA in the middle of a transfer potentially can cause the fabric to enter an unknown state.
I guess a workaround would be to insert a little widget into the streaming data path that you can use to inject EOP into the data stream to get the SGDMA to stop working on the descriptor (after you wrote to the stop register). That way you don't have to trigger a soft reset and cross your fingers there were no MM transactions in flight.