This is really cool work! Thanks so much for sharing it. Michael's suggestion of pushing it was a good one. I haven't looked at the code yet, but:
The code was able to run smoothly in a C++ application but experienced memory leaks in GNU Radio.
I'm curious how confident you are in this? It might be worthwhile to run the pure-C++ version through Valgrind just to double-check, if you haven't already.
I also have one question regarding buffering in GNU Radio. Since iterative decoding with a large number of iterations and large block sizes takes time to complete, the input pmt data that is not consumed immediately will have to be stored somewhere. Is that the case? Could that be the reason for the memory leak?
Things do get stored until buffers and full, and then backpressure builds up through the flowgraph. This shouldn't cause memory leaks.
For a more thorough explanation of this, check out this excellent blog post from Marcus Mueller!