This is the best $100 I've spent in a while. It's taken so much abuse and I don't know how a speaker so small puts out so much sound and sounds so good. I also rarely have to charge it. I was just sitting on my porch listening to it and thinking about this.My JBL Charge 2+ meets the criteria you mentioned. Very pleased with it and its pretty cheap.
https://www.amazon.com/Charge-Splashproof-Portable-Bluetooth-Speaker/dp/B00Y3SD44E