In FreeBSD 11.2, the timer_create(2) manpage mentions the SIGEV_SIGNO symbol as a possible value for the evp->sigev_notify field. This symbol is not defined in any of the base headers. I suppose it should had been written as SIGEV_SIGNAL instead.
Likewise, in the same manpage, SIGEV_THREAD_ID is mentioned for the same struct member, however this (defined) symbol refers to kernel threads. I guess that SIGEV_THREAD should had been used instead.
For reference, please see /usr/include/sys/signal.h and https://pubs.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_04.html#tag_02_04_02
It looks like the error arose from a confusion between the acceptable value of the evp->sigev_signo field and the names of the fields these values refer to, evp->sigev_signo for the SIGEV_SIGNAL value, and evp->sigev_notify_thread_id for the SIGEV_THREAD value. Since I'm trying for the first time to use that syscall I may be wrong.