the "if i can play it flawlessly then i move 5bpm up" approach does work, and it usually does lead to tight playing, but on its own it is not the most efficient one
the big problem of that concept is that you aren't doing the same motions when you play at diffenent tempos
it sounds plausible that you can program a flawless pattern of motions into your muscle memory, and then speed it up by "training" it, but this is not entirely how it works
you can program a motion pattern into your muscle memory, but if it can be sped up depends on the speed limit of the individual motions used
individual motions cannot be trained to go faster beyond a certain point, the motion just changes when you go faster then
the problem is that it is virtually impossible to execute the same motion pattern both slow and fast
there is the analogy of walking and running:
if you play something slow, trying to use the same motions as when playing fast, its like trying to run in slow motion, it can look the same, but from the perspective of muscles used, muscle memory etc. its not the same
so my advice would be to play both slow and fast from time to time, and when playing fast its not a problem if there are some mistakes, the most important thing is to analyze them,
analyze your technique, try to understand what motions you're doing
if you're always accidentially hitting too much strings when you change strings on a specific up-/downstroke/string change combinaition, you might need to incorporate a short motion into the motion pattern which moves the pick away from the strings before digging into the next string,
then you need to find a motion that works for this (preferably fast, slow ones are easier to find anyway),
it can help to start slow when finding a motion, but i recommend trying it fast too, it doesn't have to work right away, just try to see if it could be done fast
then try to practice it as isolated as possible
there are two kinds of mistakes, mistakes that come from insufficient routine and practice, ans mistakes that come from wrong technique (those are the ones you're always doing again and again)
with the strict good old "play clean before you play fast" approach you're on the safe side, because if you play something clean your technique is right for that.
however it may be right for the tempo that you can play it clean, but also wrong for another tempo,
in practice thats the case when you reach a plateau, a plateau is when you've reached a point where the motion you're using can't be sped up any more
that's also where the conventional approach is ineficcient, because you just repeat the same motion over and over until you accidentially find a better one
this is the point where its better to actively think about other motions, holds, etc. that you could use and try them out without caring too much about mistakes, it can inspire you to use diffenent motions that perhaps can go faster, or yeld different tones
EDIT: i misread the thread title, i thought it would be just about playing fast, but the OP actually specified the areas where he wants to get better, and playing faster is not one of them
in that case i agree with the others, practicing to a click/pattern is the most important thing, recording yourself also helps
what i wrote about analyzing one's technique still applies
oh and about the gain thing:
i think sweeps should be practiced both undergained and overgained, because an integral part of sweeping is dampening technique, and you can hear ringing strings, cratching noise etc. better with more gain
riffs should be practiced undergained mostly, also normalgained sometimes, because the chuggas sound totally different, and the thing with the ringing strings still applies
it really helps to use different tones,
buzzy tones (like bloodbath, lots of bass before the distortion) behave totally different like tighter ones (stuff with ts, more higs before the distortion), and are harder to control sometimes