GetThreadId произвольного потока требует переключения ядра, поэтому он дороже, чем GetCurrentThreadId, который извлекает кэшированные данные из режима пользователя.
Стоимость API сильно зависит от природы самого API. API, который извлекает кэшированное значение из пользовательского режима, очень дешев, API, который переходит в режим ядра, намного дороже, порядка микросекунд. API, которые читают или записывают на диск, могут стоить десятки миллисекунд. API, которые работают в сети, могут занимать секунды или минуты.