It sounds to me like you are trying to accomplish the impossible. There are limitations to how flexible and reusable you can make a system. Remember that a system with infinite flexibility will also be infinitely complex. It's also incredibly difficult to anticipate and solve problems for potential future projects that haven't even reached the drawing board yet.
You should start by answering some basic questions:
1. What kind of games am I making?
Obviously your character controller needs will be drastically different between a 2D platformer, first-person shooter, or third-person brawler. Are all of the games you create in the same genre, or do you change it up each time? Are there a standard set of features you use in every game that you develop?
2. How often do I create a new game?
It can take years to develop a complex game. If you're only starting on a new game once every few years, the overhead of creating a new character controller for each game is probably less than the effort you'd spend trying to create a perfect all-in-one character controller.
If you're cranking out simple games on a constant basis, you might benefit from creating a starter template - an unfinished character controller with the infrastructure in place for you to quickly build what you need. It's also perfectly acceptable to start with the completed character controller from a previous game and modify it to suit the needs of your new game. Even AAA studios do this all the time.
If you're frequently starting on new games because you never finish the games that you are developing - you're focused on the wrong problem here. Identify why you aren't finishing the games that you start and what you can do differently to help you see through your projects until the end.
3. Is this a problem that someone else has already solved?
There are many commercial character controllers on the Unity Asset Store already, as well as various free open-source options on GitHub. Is there a package/library that already meets your needs? (Keep in mind this is not a place to get recommendations for specific packages).
Essentially, you should do a cost-benefit analysis. Is the cost (time spent developing your all-in-one system now) outweighed by the benefit (time that you'll save in the future)?