The best thing I have learned for stamina starts first and foremost with your posture. Before you even press a button, you need to make sure that you are sitting up straight in your chair, have you shoulders relaxed, and your hand resting comfortably at a level even with your keyboard. Having good form and posture should be your starting point. My posture was good, but my form used to be bad. Now that I have corrected my hand placement and mechanics for streaming, my stamina feels like it can finally start increasing. It is pretty good now, much better than before. I cannot speak for mouse users or tappers, but this is how I practiced for keyboard only.
For the actual streaming, I started slower first. I cant remember which beatmaps I used, but I practiced on the slower BPMs, slow enough to where I could focus on accurately alternating fingers back and forth. I did this for a good week straight until I could feel myself deliberately pressing each key right on time with consistent tempo. This is important, because you want to be able to control the stream, and not have a feeling like you are just wiggling your fingers and following notes. You have to be patient. It will most likely be rough at first, but you will eventually get it down. You have to be honest with yourself about your progress. There is no reason to try and lie and convince yourself that you are getting better if you don't feel yourself focusing on your mechanics, posture, and technique. Start slow at first, and then slowly build up stream length. Remember to increase the length of the streams you are doing BEFORE you increase the BPM. This will improve your FOCUS before it improves your speed. Without the focus, you won't be able to go faster. It takes real effort to make improvements when you are bumping into your current limits. Be prepared for that.
So the three key points from me:
1) First and foremost, always have good posture/form before you start playing. This is the number 1 thing coached in all sports to athletes, and osu! is no different.
2) Start slow. Gain control of your fingers before you start pushing your limits. If you can't control your fingers at slower, what makes you think you can control them at your fastest speeds?
3) Increase stream length before stream speed. This will help with your focus. I see a lot of average and above average players who just lose focus on longer streams and maps in general. It takes a good amount of effort to focus for the long streams. This is why you must start slow and gain control of your fingers first, so that your focus can be directed at the stream, and not at pressing buttons. This was a huge issue that took awhile for me to realize was even a problem. Once you get control of the fingers, do longer and longer streams at the slow speeds to test your focus. Don't try and jump to faster streams right away. You will only hurt your progress. Start all the way from the bottom and work your way up all the way to the top without skipping any steps.
It will take time. A lot of time. If you REALLY want to get better, you have to be patient and willing to be uncomfortable. If you feel comfortable while trying to improve, you aren't trying hard enough. This might seem extreme and a bit harsh, but it's only for those small handful that are serious about improvement. It is worth the weeks and weeks that it will take once you finally get rid of bad habits and start to see progress.