sorry for the belated response. You do not tell us what type of request you are making (what type of data, is it scheduled or on demand, are you using the .Net SDK), so my response will be generic.
You need a valid token every time you send a request to the API, whatever the request (i.e. the extraction request itself, a request to check the status of the extraction, or a request to retrieve the data). You can retrieve a new token any time, it should not break your extraction process. If you are using the .Net SDK the token renewal is handled transparently for you.
That said, if your request takes a very long time, you might want to break it up into smaller requests. We encourage people to group smaller requests into larger ones (like making 1 request for 10 instruments instead of 10 requests for 1 instrument), but there is also an upper limit. It might therefore be worth while breaking a large request into smaller ones, the accumulated time might well be smaller.
As an example, I had a customer requesting 20 years of data, it took 6 days. Requesting 1 year of data took a few hours. That was an obvious clue that requesting 20 years was not a good idea.
These are just indications, it is extremely difficult to give you numbers in this context. It also depends on the nature of your query, the type of data, the number of data fields, the date range, the number of instruments. If you regularly make the same type of request you could make some tests to find out what delivers the best response time (note that it will also depend on other factors such as server load).
I hope this helps.