There are a few ways to do this and I'm going to separate it into things that are available at level one, then go into options for later levels.
Level 1 - Character Creation
You've already named them: Be a Halfling (Lucky racial trait) or take the Lucky feat (variant human). Both of these options apply to Saving Throws, Ability Checks, and Attack Rolls (and the Lucky feat also applies to attacks against you).
Higher Levels - Class Independent
Elven Accuracy allows you to reroll Dexterity, Intelligence, Wisdom, or Charisma based Attack Rolls when you already have advantage. Very situational, but an option.
And it's worth noting that if you didn't take the Lucky feat at as your Variant Human feat, you can take it later on.
Higher Levels - Class Dependent and Multiclassing
With only two levels in Wizard, you can gain access to the Portent ability from the School of Divination (yes, I know you mentioned it, already). This isn't a proper reroll, but it replaces a roll with a value, which is spiritually similar. This gets an upgrade at level 14 to three uses.
Rogues have a handful of abilities that work similar to Portent, in that they allow you to set a static roll amount. Reliable Talent at level 11 makes your minimum roll a 10 for proficient Ability Checks; Stroke of Luck at level 20 allows you to auto hit or treat an Ability Check as a 20; The Swashbuckler subclass let's you reroll a missed attack, with advantage, no less.
Fighters gain access to Indomitable at level 9 (upgrades at levels 13 and 17), which allows them reroll failed Saving Throws.
Barbarian (Zealot) gains Fanatical Focus at level 6, which also allows rerolling a failed save. And Indomitable Might at level 18 replaces a roll lower than the Barbarian's Strength score.
Monk Diamond Soul (level 14) allows you to spend a ki point and reroll failed saving throws.
Wish can force a reroll of any roll made within the last round (including your last turn).
Glibness Allows you to replace any Charisma Check with a roll of 15. (Thanks, Patrick)
Items (Magical or otherwise)
The Luck Blade allows one to reroll one attack roll, ability check, or saving throw, once per day. Sure, it's a legendary item, but it's an option.
Ring of Evasion (only a Rare item!) allows you to expend a charge to Succeed on a Dexterity Saving Throw that you had failed, as a reaction.
Dragon Masks (Legendary) allow you to succeed a failed saving throw once per day.
Clockwork Amulet is a common item that allows you to take forgo rolling an Attack Roll and instead use a ten, once per day. (thanks Tiggerous)