Nice list of reasons. I may be able to make this work.
Another option would be to leave time-shifting off when flipping channels and after a delay (5 - 15 seconds), enable time-shifting. OR, what about saving the stream in the background but not playing it, then just switching to playing it after the 15 seconds are up.