Hi.
So
To begin with, I will describe what the code you provided does. Performs a getMe request to the telegram server. As a result, we get some data on the bot (for example, its name). Further, in the case of a positive response, the program in the long polling mode waits for any event (getUpdates). This can be a message sent to the bot by the user or any other event that can be sent by the telegram server to the bot. The bot waits for an update depending on the TimeOut parameter in the procedure. If the update comes, then apparently You do not have processing. Just move on to the next operation. As in case it doesn't wait.
Then the bot sends the message "/start". Why and who? Instead, commands are sent by users to the bot, not the other way around. The CurrentChatID property is useful inside event processing, for example, as a response to a user's message (for example, the same command) and this property will store the ChatID In which the message was sent to the bot. It is logical that the bot will send a response in the same chat to the user.
Perhaps, if there was some update of the bot in the form of a message from the user, the program will send a message to this user, although there is a lot depends on other factors.
In General, the behavior of the algorithm is difficult to predict. So if you formulate Your task, what you want to do I would suggest you the options of using this bot