service is usually a shell script that calls SysVinit-style service start/stop scripts located within /etc/init.d/.
service prometheus-node-exporter-lua status should end up calling /etc/init.d/prometheus-node-exporter-lua status, and the output and the exit code comes directly from the actual /etc/init.d/prometheus-node-exporter-lua. The output and the exit code may or may not be standardized: they might follow the current LSB specification, some older version of the LSB specification, or - especially if the software is ported from another unix-like system - a specification or convention from the originating unix-like system, or no particular specification at all.
service --status-all attempts to produce a unified list of all services and their statuses. It probably does that by calling each script in /etc/init.d/ with the status argument, throwing away the textual output, and examining the exit code. If the distribution has added a requirement that any SysVinit services must create a lock file (e.g. /var/lock/subsys/<service_name>.lock RedHat used to require before switching to systemd) when starting and remove it when stopping, another possible implementation is that it checks for the presence of these lock files to determine the started/stopped state.
If the SysVinit service start/stop script for a particular service does not fully conform to the expectations of the service --status-all script, the --status-all listing may be incorrect for that service.
The output of commands like service prometheus-node-exporter-lua status comes tailored for that particular service, so in absence of any other evidence, I would pay more attention to the service-specific status query than the --status-all overview.
running, but is idle (nothing to do)... it's waiting to service some event ... there are no events being serviced at this time