What a tough place for that little boy! So lucky he has you to step up and advocate for him! My oldest son (my step, that is) was raised primarily by his father from similar problems with his mom. She is clean now, and trying to be responsible, and, since she never did give up her rights (because walking out for five years doesn't count. 'Scuse me. That was a bit bitter, wasn't it...), she is back in his life. There are problems with the situation, but she is trying to do better.
And you're right that it will probably get worse before it gets better with your sister. I hate the thought for you, but you probably will have to use the courts to get her to back off. Right now, while she's still messed up and your son is still so vulnerable, she is just going to have to stay away. Period. It's the only way to move ahead.
You might tell her that, someday, when she's cleaned up, when she's capable of understanding and accepting why you're raising him, when she's stronger, THEN she might be able to see him. If she gets clean, gets counseling, gets a real life, she really might understand it all better. Giving that baby up was the one thing you can never fault her for. That was the RIGHT decision, and, hopefully, someday she'll understand that.
Since you said she was asking for "money or the ability to see him," I kinda doubt that it's him she's after. She may feel like you "owe" her for letting you "buy" her baby. It's sad to me how many women give up babies in exchange for money (in my son's case, his mom asked for some cash and to keep the car in exchange for letting my husband have custody). They're so twisted from drugs, from sorrow, from rough life, whatever, that they don't seem to get it at all.
Sorry, preaching to the choir, I'm sure :)
Anyway, you are doing the right thing. You are not being too harsh. When she makes better choices, she'll have better options. Until then, you're not doing anything TO her. You're reacting to HER decisions in a way that protects you and your children. And that's the ONLY thing you can do :) Hang in there!