Is "napsal jsem" really wrong here? To me, "have been writing" implies that I'm done writing now, and so perfective should be ok here?
With "i have been writing" you are describing the process. Saying that it took some time. Yes, you are done now but you were writing it for two years.
NAPSAL means I WROTE. Perfect aspect of the verb. PSAL has no limit to how long the writing took.