So I guess I can fully test my system with demo account before buying a monthly market subscription and live trade.
ib_insync allows you to do that. I haven't tried it myself. OP: Vast majority of information you'll get from the API documentation online. When you conceptually understand how the flow is, it becomes easier. I personally use ibpythonic which is the same as ibPy syntax wise, much logical from my point of view.
You can get all the information from the IB API site. IB provides a basic tutorial, a sample application, some instructions and the API itself which contains some wrapper classes that you would have to install (for C#). But like some of the posters said, it's not that simple. You have to write all of the error-handling codes, historical data requests and charting, your own indicators if you want to do TA as IB's indicators are proprietary and are not available for you to use in your API (you wouldn't want to anyway, some of them repaint). If you want to start with something simpler with less programming, you can try to use their EXCEL via DDE (which you would have to enable in TWS). Might be easier for you.
You need to make sure you download the right classes for different version of API. From what I last remember, after version 9.72, ActiveX for C# is no longer supported and you are going to see some differences of where things are downloaded in different folders for version 9.72 and after.
IB is a broker and it offers two things: realtime marketdata and executions. Want historical marketdata? Pay Reuters or Bloomberg (from $5000 / month for a basic terminal). Want a portfolio manager (position, PNL, risk)? There are countless provider, my former employer offers one starting at $200,000 / year.
IB provides historical data. Depending on what you need it can be sufficient. There's absolutely no need to pay $5000 for a terminal. It's also $2000 per month for Bloomberg, not $5000. I'm quite confident there's no-one on ET who pays $2k per month for data out of their own pocket. Not sure what your post is trying to imply.
You need to be subscribed to the data for each of the markets your interested in. So if you're an individual who wants NASDAQ and NYSE then that's $3 ($1.50+$1.50), prices vary obviously.