Possible to use ScriptServiceUtil or similar to get list of Things that are Offline?

Again, not using Rules DSL.

JS Scripting, UI rules, and jRuby for sure have access to the generic rule trigger which could do that. Or you could use the (rule template)[Thing Status Reporting [4.0.0.0;4.9.9.9]].

Not really. They are all pretty good except for Nashorn JS and Rules DSL.

If you didn’t already know how to program choose Blockly. If you do, choose the language closest to one you already know.

You don’t have to migrate your old rules. That can remain Rules DSL. My recommendation is to not do new development using Rules DSL. The simplicity of the language had been surpassed by Blockly and yet even Blockly better supports common programming features like functions and supports the full OH API. Even the most powerful languages like jRuby and JS Scripting can be just as easy to use as Rules DSL when using their helper libraries.