The fade-out could work but would add more delay time, but the buffering would almost certainly require additional hardware because radios typically can’t process two DAB signals at once and it can’t pre-buffer a live broadcast unless it adds an extra delay, which is just shifting the problem to a different cause. Speed ramping could maybe account a bit for this, but then if you change stations multiple times quickly this would fail. Also, speed ramping would probably annoy people, especially for music, unless imperceptibly slow. That would require a decent buffer, meaning you’d have to delay switching the channel and also not change the channel for a bit, otherwise you’d get the pause.
The amount of complexity any potential solution adds is not especially worth it, as much as I recognise that it is annoying. Also, since most people aren’t too fussed by the pause, I doubt anyone would bother to produce a radio with the hardware for this (and the software on top).
Mull is fine if you use the divestos repo directly, but the f-droid version is behind