الإجابة الصحيحة هي: "has been".
شرح التفسير
is: تُستخدم للإشارة إلى وجود أو حالة حالية.
am: تُستخدم مع ضمير المتكلم "I" للإشارة إلى حالة حالية.
had been: تُستخدم للإشارة إلى حالة كانت سائدة في الماضي وانتهت.
has been: تُستخدم للإشارة إلى حالة بدأت في الماضي وما زالت مستمرة حتى الوقت الحاضر.
في هذا السؤال، نتحدث عن فترة زمنية مستمرة حتى الآن (20 عامًا) - "for twenty years" - لذلك فإن استخدام "has been" هو الأنسب.
أمثلة أخرى
I have been living in this city for 10 years. (عشت في هذه المدينة لمدة 10 سنوات.)
She has been working as a teacher for 20 years. (تعمل كمدرسة منذ 20 عامًا.)
ملاحظة: قد يكون هناك استخدامات أخرى للكلمات المذكورة في سياقات أخرى، لكن في هذه الحالة، فإن "has been" هو الخيار الأنسب.