awk definitely supports multiple characters as record separators. I tested with your script and your data, it even works with a crummy buxybox awk version.
I think your data's not what you think it is. Did you edit this text file in windows?
POSIX-compliant AWK implementations are not required to support multi-character record separators.
In the Linux world, you can usually count on multi-character RS being treated as a regular expression. Busybox, gawk, and mawk behave this way and that mostly covers the AWK implementations you're likely to find on a Linux system.
nawk (aka New AWK aka BWK AWK aka One True AWK), however, does not support that behavior [1]. When RS is a multi-character string, nawk only uses the first character and it is always used literally (it is never a regular expression).
nawk is quite popular outside of the Linux world. It is used by OS X, FreeBSD, NetBSD, and OpenBSD. nawk is also present on Solaris and I wouldn't be surprised if it's present on other proprietary UNIX systems such as HP-UX and AIX.
Your AWK implementation appears to be using RS=~ . If it does not support multi-character RS (whether as a regular expression or a literal string) you cannot do it (at least not easily).
Further, note that even when considering the unintended RS, the field count is wrong. I suspect this is because your field separator, FS="|_" is set to a regular expression which yields undefined behavior. AWK implementations use the extended regular expression flavor. In that grammar, the pipe is a metacharacter whose meaning is undefined if it is the first character in the expression (among other contexts). You should backslash escape the pipe.