Is there a public API which would allow me to do (essentially) the same, namely, to create a HomeKit pseudo-device (or bridge) purely by software in my application code?
No, though there are several large-scale projects that implement HAP (HomeKit Accessory Protocol) in software. This is not something the system formally supports (for example, pairing one of these accessories triggers the same "uncertified accessory" warning as HAS), but they do "work".
However, the problem here is this:
The goal here is, I would like to be able to keep track in my application of when/whether at all some HK automations did actually fire. If I added such a pseudo-device of mine to the appropriate scene (action set), I presume it would get the characteristic-change event, and thus I'd get the desired information this way.
Strictly speaking, nothing prevents you from simulating an accessory on the same device Home.app is running on. Indeed, this is exactly what you're doing when you run HAS and Home.app on your Mac. The problem here is that this relies on your app being awake and "active", something iOS severely restricts. See "iOS Background Execution Limits" for a good overview of these issues.
In any case, that reality means that simulating an accessory on iOS isn't really all that useful.
(I happened to notice that there is a software out there which for a similar goal uses shortcut-based automations which open specific URLs.)
One clarification here. The "main" Shortcuts.app interface provides a very broad set of capabilities, run on device, and can be extended by apps on the device. However, that's NOT how HomeKit's "automation shortcuts" work.
It may not be immediately obvious, but if you look closely at what's possible inside a HomeKit automation shortcut, you'll find that it's limited to a smaller subset of what Shortcuts.app offers. The reason for this is that HomeKit's shortcuts don't necessarily run on the device that created them but are actually run by the HomeKit "backend", typically the Home Hub. That's why the command set is more limited, as the device running the automation simply doesn't have access to the same capabilities and data your app does.
__
Kevin Elliott
DTS Engineer, CoreOS/Hardware