The two forms are different so they do have slightly different uses. Using having + past participle gives a subtle emphasis of completion. In the test question you provide, the simplest answer is the simple gerund not accepting. There's no apparent reason to use the more complex and nuanced not having accepted. In tests like this, the simplest answers are the best.
Contrary to your idea, I can say that the test designer may have intended choice C to be the correct answer simply for the same reason that
having + past participle indicates completion emphatically.
Your option for the simpler answer instead of the complex one is a test-taking strategy. But test-taking strategies as such are not always reliable, and there might be other conflicting strategies. In designing the test items, a distracting choice item looking like the correct answer would often be included, perhaps to increase the difficulty. In the case of this test question, both choices
B (having not accepted) and D(not accepting) are similar to choice C (not having accepted), which in itself has already constituted a legitimate excuse for choosing C, should I follow the "distracted item is the correct answer" strategy.
That's why I wanted to know the exact meaning difference between the two choices. Your explanation is therefore not particularly convincing, as Piscean
obviously denied the difference between the two. But thank you all the same for your answer.