How about the Tiny SA (Spectrum Analyser) or Tiny SA Ultra? Both have a Signal Generator mode.
The Tiny SA does 100KHz to 350 MHz Sinewave and the Tiny SA Ultra does 100KHz to 800MHz sinewave. Harmonics in the output is probably about -40dB. The square wave output of the SA Ultra goes to 5400MHz.
The Tiny SA Ultra can output a pretty accurate -123 dBm to -17 dBm in 1dBm steps. I think the lower level accuracy is not great, so the real minimum output is probably around -105dBm. To get a lower output, you could always just buy a 40db SMA attenuator. It can be set for AM, or FM modulation. Modulation frequency, AM modulation depth and FM deviation can be set. Sweep mode can also be configured.
I am not sure of the output range for the Tiny SA is but it is probably not as good as the SA Ultra. At US$119, I would definitely go for the SA Ultra.
Control is via a pretty good touch screen. And you get a decent Spectrum Analyser for the price!
The important thing is to buy the genuine product as there are lots of fakes that do not work properly. Check out the home page:
https://www.tinysa.org/wiki/The genuine product on Aliexpress is from the Zeenko Store.
https://www.aliexpress.com/item/1005004934403303.html