ZHA or Sonoff USB 3.0 Plus limits me to 250 zigbee devices?

Read both the quote below and my updated reply to understand that you can kind of solve the problem for now by throwing newer hardware at it, meaning that you can already today simply buy and migrate to a newer Zigbee Coordinator adapter that is based on a microcontroller more RAM-memory when you a starting to reach around 200 connected devices to more than double the amount of devices you can add.

In summery, I would not worry yet, instead simply try to keep all your devices as a single Zigbee network if possible as that is the best way to optimize your Zigbee network, so follow these best practices → Zigbee network optimization: a how-to guide for avoiding radio frequency interference + adding Zigbee Router devices (repeaters/extenders) to get a stable Zigbee network mesh with best possible range and coverage by fully utilizing Zigbee mesh networking

As explained in above quote, we can not really give you a hard number however if you want a number than know several people have reported that they only topped out when reaching around 200 connected Zigbee 3.0 devices when using modern community firmware on a Zigbee Coordinator based on the popular Silicon Labs EFR32MG21 microcontroller unit with 96 kB RAM (which is using in example the existing Home Assistant SkyConnect / Home Assistant ZBT-1, Home Assistant Yellow, Sonoff ZBDongle-E, Smlight SLZB-07, Aeotec Zi-Stick, easyiot zb-gw04, and more), as well as also topping out at around 200 connected Zigbee 3.0 devices when using Zigbee Coordinator based the in the same generation directly competing CC2652P microcontroller unit from Texas Instruments which has 88 kB RAM but runs a slight more efficient Zigbee stack so also been reported to top out at around 200 connected Zigbee 3.0 devices.

Therefore all you need to do if you ever reach that many Zigbee 3.0 devices is to upgrade to a newer Zigbee Coordinator based on later generation of microcontroller units that has more RAM-memory, like the EFR32MG24 (up to 256 kB RAM) and EFR32MG26 (up to 512 kB RAM) from Silicon Labs, or the CC2674P (up to 296 kB RAM) and CC1354P (up to 296 kB RAM) from Texas Instruments.

Hence the newer EFR32MG24 microcontroller as an example has more than twice the amount of RAM-memory compared to the older EFR32MG21 so in theory using a EFR32MG24 based Zigbee Coordinator should allow you to connect more than twice the amount of Zigbee 3.0 devices.

While there are not that many choices of available Zigbee Coordinator adapters using those newer microcontroller units yet, there are at least a few products based on EFR32MG24 that I have seen in the wild, so surely there will be more Zigbee Coordinator adapters using it released in the future. Just as both Silicon Labs and Texas Instruments will continue to release newer and newer microcontroller units in the future with more and more RAM-ram.

Again note that you will only run into these if connecting mostly Zigbee 3.0 devices as those use higher security standard (better encryption) that have more overhead on the for the Zigbee Coordinator MCU (microcontroller unit). So if you are instead only connecting older Zigbee devices you are unlikley to hit any limits as those use the old Zigbee Home Automation 1.x or Zigbee Light Link protocols then those use old security (encryption) with very little overhead so there is no problems adding thousands of such Zigbee 1. devices

PS: Note that manufacturers like Sonoff/ITead ship their Zigbee Coordinator adapters with the same old firmware as their initial batch and have not by themselves released any newer firmware, so you will need to update to a newer community firmware if you want the peak performance possible from it. Check out for example these community firmware builds: