Are you doing these in a tag or on the template? If its on a template, I may be forgetting about something, but I’m not sure how your running them every 2 seconds. Bindings refresh at your client poll rate which I believe is defaulted to 250mS.
Even using the expression alarm functions I’ve personally had bad experiences with running from bindings. Even when the screen worked great locally, it would cause the screen to crash when accessed over VPN.
As far as straining the gateway resources there are a lot of factors that would play into it. If the client locks up, I wouldn’t expect it to strain the gateway, I would assume it wouldn’t be able to send requests while locked up. That may or may not be the case though. Your alarm requests though, even if they are called from the client will run on the gateway. It would need to query the internal database to get the information your requesting.
Personally I wouldn’t use the runScript function, I would do a gateway timer script and write to memory tags that your templates reference. I would also do some testing to see how the timing impacts the performance of your gateway. You said you have it running every 2 seconds right now but do you need it in 2 second intervals or would 5 or 10 seconds work. The other question is will the script complete in 2 seconds. I would look at all of that to make sure you don’t negatively impact your performance.