Если поток во время выполнения нативной функции находится в Alertable Wait State, то значит он крутить цикл и ждет сообщений. Вы можете перед вызовом функции зарегистрировать обработчик и вызвать его через сколько-то секунд. Цикл, который крутится внутри нативной функции дернет ваш обработчик и дальше нужно придумать как стек размотать. Для этого должен быть какой-то стандартный способ. Возможно вернуть ошибку из обработчика или кинуть исключение.