Good questions! I'll try to answer them one by one:
a) if I return a non-success, ie warning, the hook will retry and cause it to go into too many errors, sleeping.
We often see when people experience webhook issues, it's because the receiving API can't handle demand, or experienced downtime. We added automatic retry on error for the hooks, so if you return an error code, the hook will backoff, and retry a few times. You can avoid this by not returning an error code.
Say I have 200 active clients, posting 4 times a minute, is that tripping the mentioned 100 simultaneous requests for a hook?
By default any given webhook can perform up to 100 simultaneous / concurrent requests. So it depends on how long your server takes to reply to a given request / how long the hook has to wait for a response. If each request takes a second, and your requests are spread out evenly, then it shouldn't be a problem, but if all 200 devices are publishing simultaneously, and the requests are really slow, then it might take a while for them to go through. Our enterprise integration tiers can provide higher throughput.
The Particle Cloud is designed to be highly scalable and reliable, and built to support an unlimited number of devices. We provide a ton of flexibility for product creators, and lots of free features in the free developer tier, as well as SLAs and greater throughput for the enterprise tiers.
I know there is some work happening on a TLS library that should also make it easier for your to hit an HTTPS endpoint directly, I'm not sure if that's been released yet, but hopefully soon!