Hi SudoPowerUser,
PowerApps is client-connection based, so the primary limitation should be on the data source - (there are no known concurrency limits with PA, you can have as many PowerApps users running an app as you can have licensed users).
SQL as a source is more than capable of handling hundreds or even thousands of connections (32700 odd concurrent if I recall) so you should be fine with 300. If you are sharing the server with others or expect to start reaching much higher numbers, you may want to understand more of how your source handles connection pooling.
Secondly, in my experience properly defined and managed Indexes will always help with filtering and searching regardless of what client you're using. If you know which columns you're planning on filtering from PowerApps you can focus on these as primary indexes - and considering you should be delegating your filter queries to SQL it's really all about helping the source return the most relevant data as fast as possible.
Lastly, I find PowerApps logic super handy and friendly for both front-end and back-end pre-validation - which is important for first-time data capture accuracy and compliance to the back-end data structures.
Personally, I'd say you're off to a good start using PA with SQL, but I have to confess that I'm biased towards PowerApps to begin with, so take that as it comes 🙂
Kind regards,
RT