Dealing with the university "standard" is much easier than it seems, since they don't (can't) determine what a "point" is. So 90% of the available points is meaningless.
There is a form of grading called "cumulative grading" (maybe some other terms apply). Decide that the course as a whole is "worth" 1000 points. Create student exercises/exams/whatever that total to 1000. For example, Project A is "worth" 300 points toward the goal. When a student does an exercise they get a certain number of points up to 300. (See below for refinements.) Every piece of graded work has a value, possibly all different, and they add up to your total.
The list of tasks and their individual point "values" are listed in the syllabus. Students get to see the big picture, up front.
You can penalize for late work as you like.
The students always know exactly where they are. When they earn 700 points they know that they have a C or better - guaranteed. The University is satisfied and the student knows absolutely.
An additional element/benefit of this is that some students have many things to do and my class may not be the most important thing. They might be satisfied with a B if it gave them time to work on other, higher priority, things and they could do so without risk.
I always let students repeat/refine their work for regrading. They couldn't earn full points on regrading, but, say, up to 90% of the points lost at first grading could be returned to them if they improved the work sufficiently. This means, essentially, that if they got 270 points on that project, missing out on 30, that they could earn back 27 points leaving them only 3 points short of full marks.
Re-grading gave two advantages. One is that I never got whiny complaints about points. Second, when I thought a student (or team) really needed to revisit their work, I could give a relatively low score on the initial submission. They thus had more incentive to improve it.
You may not want to do the following, depending on your load and your students, but I didn't limit the number of times a student could re-do a piece of work. I made exceptions only if it got excessive as the down side, for a few students, is that they obsess over some early work, falling behind on the new. So it takes balance.
In computing summary grades, no student ever misses a mark by an insignificant amount. If someone is ten points out of a thousand short at the end of the term their grade is "rounded" up. This is perfectly justifiable as there is likely some (hopefully small) subjective element to any grading of projects and the like. I gave up on "objective" exams a long time ago, since they measure only poorly and can be greatly affected by other things such as student stress, etc.
Finally, at the end of the course, I looked at the grades overall according to the above measures. I asked myself whether this seemed to be a fair measure of what the group as a whole learned. Usually it was fine, but once in a while it turned out that the grading itself was somehow off, and the students were better than the curve suggested. I'd make an adjustment. No one ever questioned this, nor would they have any reason to. Tenure is a great thing, however, when you want/need to do something that the University frowns upon. At the end of the day (term) you need to be reasonable.
Note also that I had a reputation around the University of being very hard/strict/demanding. But the students always had a reason to feel good about themselves and how they did. This is, in some ways, nearly as important at the technical (Computer Science) things I taught them. Actually being more gentle than your reputation is a plus.
Also, note that the philosophy behind this whole scheme is "You aren't here to prove to me that you don't need to be here."