The main problem is here is that the loader does not behave as the manpage says. I've looked at /usr/src/stand/common/boot.c, i don't know if it's the right file but i could not figure it out.
I should change the man page because the modules aren't loaded and then the key press checked anymore. the menu comes up, and autoboot_delay regulates how long it waits for an automatic boot. With UEFI, the best you can do, alas, is 1s since it's very very difficult to hit the small window between when the device is opened up in the loader and the check. Buffered keys often don't do the job, thanks to the UEFI BIOS. I should likely remove the '0' entry from the manual page. But I've had OK luck holding down the space key sometimes... I settled on a delay of 3, but 1 also works OK enough...
Looking at the code now, it would appear that if you have the menu enabled, it behaves a little differently than if you have it disabled. If you have it disabled, it looks like it would behave like is documented. With the menu, we loop waiting for the key and timeout to expire. We only go through the loop once, so if the key isn't there when the menu finishes drawing, you lose your chance. There's also a 1 second granularity, so on the average, we'll wait 1/2 second less than the number of seconds specified. We do loop with a delay of 50ms, but we're effectively just waiting for the second to tick. It could be much better, but we'd have to build out sub-second support in the rest of libsa on all the platforms...
It's true even for our BIOS loader, though there there is a chance to get some characters into the buffer, but it's also far too easy to screw up the boot and wind up not knowing what to type to get your /boot/loader loaded...
So the real problem is menu has different behavior than cli, and the man page documents the cli.