Nothing jumps out at me that looks incorrect; however, I haven't used this SGDMA in ages so I might have missed something.
It might be worth instrumenting your code for test to that it doesn't wait for commands to come in over RS232 so that you can kick off your code in a simulation and watch how the SGDMA behaves. Things that can cause the SGDMA to become stuck busy:
1) Not terminating the descriptor chain (it looked fine how you did this though)
2) Your ADC is not asserting the ready bit causing the SGDMA to get stuck twiddling its thumbs
3) The SGDMA never properly started (I didn't see anything to suggest this from your code though)