Or can we ignore this error?
Good question. How do we answer that question? By looking more at the log file: After this one error happens, does it repeat again?
If no, then it is only a cosmetic problem: The "disk drive" (virtualized disk provided by Hyper-V) is reporting a unit attention condition. That is normal SCSI tradition: if something "interesting" has happened, then the next time the initiator (the FreeBSD client in this case) executes a normal read or write operation, the disk drive tells it "I didn't do that command, because I first want to tell you about a really interesting condition". In this case the "really interesting condition" is: ASC/ASCQ=3F/2, meaning "changed operating system definition", and I have no clue what that means, nor do we need to care. The correct response from the initiator (FreeBSD) is to take note of the "really interesting condition" (for example by printing it to the system log), and then try the IO again.
If this happens exactly once, or very rarely, and it does *not* happen when the IO is retried, then everything is fine, since the IO will succeed on the second try. If it happens every time and after a while FreeBSD gives up, then we have a problem.
Starting a PR is still a good idea, because this is at the minimum a cosmetic problem: Systems shall not print scary-looking (but perhaps harmless) error messages to the log, because it scares the horses (old joke, the users). Maybe the emulated disk provided by Hyper-V should not be reporting this condition in the first place. Maybe FreeBSD should know that emulated disks will occasionally report this condition and not print it.
Personal side remark: I hate the old-fashioned SCSI standard. Implementing it correctly is unnecessarily hard, because its mindset and data model are from the 1970s, when 50-pin parallel ribbon cable ruled the world, and SCSI controllers had to be emulated using two dozen NAND gates. The unit attention thing is like the old joke: "Just because I have attention deficit disorder doesn't mean ... oh look a squirrel". When implementing SMART, this style of error handling (and the many incompatible option the SCSI standard allows) just means that writing code is a lot of work, and error prone. That crazy dance could be handled sanely, by having a sensible error and status reporting mechanism, which clearly distinguishes between errors (which prevent the requested command from being executed) and side conditions. Alas, this is the crappy standard we'll have to live with.