Kingston makes a fairly decent one. It's how we manage our root of trust right now. Two of those with root identity and reciprocally signed exec identities. All of the artifacts stored in git RSL repos on the HSM, the two HSMs sync'd via signed commits and merges so we have an audit trail, one HSM is stored on-site and the other off-site, and one can be checked against the other to measure for tampering. All of the initial provisioning happens on an air-gapped machine with intermediate artifacts that only live in a temporary RAM disk that itself is encrypted with a 4096 byte key that is never known to anyone (it's fed straight into the ecrypt tooling and discarded).
The next layer out from that is all Yubikey based.
It's an extremely cumbersome process to do normally, but we invested a fair bit of time in creating automated key ceremonies of different shapes to handle different parts of the process.