Don't worry about gimmicks like persistent levels and achievements before you have the gameplay down.
I suggest you look into DotA, a WC3 custom map that is (was?) arguably one of the most popular competitive e-sports around. The game had one terrain, no stat tracking outside 3rd party programs, no achievements, no unlocks, nothing. It was pure gameplay and learning what made people willing to play the same terrain thousands of times will (even if it doesn't directly translate into your game) help you.
The most important aspect is variation. Player vs Player games have innate variation because players are difficult to predict. Of course, you need to allow players to be unpredictable if you want a successful PvP game. For this, you can look at anything from Starcraft to Halo; unpredictability creates variation. Variation creates replayability.
Next comes varying degrees of success. While "You've won!" or "You've lost!" certainly work for some games, I'd argue that such a boolean outcome is dull. Take a look at any fps game; you have the same overarching "You've won!" message at the end, but in addition, you have your kills and your deaths. Your team may have won, but your 3 kills and 28 deaths probably didn't contribute. This is a varying degree of success; you succeeded, but you could have succeeded better. That drive to improve is a very important aspect in creating replayability. High skill ceilings and good competitive aspects both improve (but not create) this.
Lastly, direct variation. DotA consisted of 2 teams of 5. Each player would pick from 60+ heroes. This meant that you rarely would have the same composition of allies, and rarer still would you fight the same enemy. I don't think this needs much expanding.
Of course, this is more aimed at PvP, but the same principles can be applied to PvE centric games. Diablo and Diablo 2 are PvE games that create a lot of variation; random loot drops, random dungeons, random enemy spawns. The less likely that the player will be in the same situation twice, the better.
I think the key element here is atmosphere. A good villain/apocalyptic event needs a lot of presence to make players feel in danger.
Danger and fear go hand in hand. Fear is a primal responce to being predated upon. Hence a good antagonist should be a good predator.
So those two key components;
Fear is induced by suspecting you are in danger. You aren't afraid of lions because they have no presence near you; you know they're (probably) thousands of miles from where you're sitting right now. However that monster under your bed that was around when you were 5 years old had huge presence; it was right next to you and you slept with it every night. Sure, you never saw it, but it had presence and that alone is scary.
In context, a good antagonist has to be close to the player. You're not afraid of some black hole on the other side of the galaxy; but news that our sun will become one within 24h will scare the hell out of you.
Next, the predator part. Sun becoming black hole is a good predator; you can't fight it. Take every good horror film antagonist and they all have one thing in common; they're efficient at killing you. The aliens from Alien are nearly endless in number, strike from the shadows, are all around you and can incapacitate you in seconds. That's a damn good predator, and damn scary if they had presence in your life.
To summarise, you need to feel like the antagonist is close. You need to feel like the antagonist is an efficient killer. How you do this is entirely up to you, one method isn't really better than another, just get those 2 elements down and it'll have that "psychological effect".
I feel people are missing the point of a rarity system.
I'll use World of Warcraft as an example, as it's the best one I can think of.
The point of a game's UI is to get information across to the user in the most efficient way possible. Text is a horrible way to convey information, and in general I feel people are very resistive to reading unless they absolutely must.
Without even reading an item's tooltip, a user can decide whether they should even consider the item. Leveling a low-level rogue and see a green item? Worth reading. Playing your epic geared warrior and see a blue item? Not worth reading.
This initial "Should I even consider the item?" is the purpose of a rarity system. The faster you can convey information, the better, and a rarity system basically acts as a filter in the user's eyes to immediately see whether the information in the item's tooltip is worth reading or not.