Well, may all my unseen fist pounding help others in this scenario:
When Apache is run as a service in Xampp, it requires the libzmq.dll in a different location than when run as a process.
Procmon showed a few places it looks for it (per Procmon, apparently it really was finding php_zmq.dll and therefore providing a misleading error when libzmq.dll was not found), however for Xampp only these two would suffice:
\XAMPP\apache\libzmq.dll
\XAMPP\apache\bin\libzmq.dll
I chose \XAMPP\apache\ because it is just cleaner and easier to see it there.
So for success running as a process or as a service, the following is my resultant set:
Windows Server 2012 r2 Std
xampp-portable-win32-5.6.28-1-VC11
php_zmq-1.1.2-5.6-ts-vc11-x86 (…\XAMPP\php\ext\php_zmq.dll & …\XAMPP\libzmq.dll…& …\XAMPP\Apache\libzmq.dll - all files unblocked in properties after download)
\XAMPP\php\php.ini with extension=php_zmq.dll
xibo-cms-1.8.1
VC++ Redistributable of 2012 or 2015 (x86 & x64) might play a hand if you have similar struggles, I couldn’t pin enough of that one down to be sure (not going to go uninstall any of them now just to try and find out)
and I’m done with this