@StreamFramer, good points and questions.
If you are using Twitter Sign-in, you should be able to open a streaming connection for each of your users. You will use the user’s access tokens and the rate limit should fall on the user.
The streaming API is not designed to be as dynamic as you are probably intending to use it. The rate-limits on re-connecting are not disclosed for this particular end point. I would design your user experience to keep this in mind.
You can allow your users to change their track parameters at anytime, but communicate to the user that changes won’t take effect immediately. You could then create a cron that looks for updated track parameters and restarts the related stream. This way stream restarts are under your control, and a user can not spam the the Twitter API.
You will also want to implement back-off strategies. Documentation start at “Reconnecting” on this page.