2)
GetThreadContext писал(а):
You cannot get a valid context for a running thread. Use the SuspendThread function to suspend the thread before calling GetThreadContext.
3) В исходниках FPC есть приписка "{$note todo, fix alignment }" при объявлении структуры CONTEXT - возможно, что и некорректно объявлена для x64. Нужно дампить возвращаемый результат и смотреть что где находится, по каких смещениях.