Non-yielding Scheduler first time to happen on a new server

I have been running a stable database for 1 year and recently I moved to a new server that uses NVME drives.

Just after 3 days with the new server, I noticed the database performance is very slow and alot of dumps and event logs are being created

I am using Windows server 2016, MSSQL 2012 SP4 with latest updates.

I already tried DBCC checkdb with no errors and like I said the same configuration was stable for 1 year without a single crash and I just moved the same configuration to a new server that use NVME drives.

Process 0:0:0 (0x16e0) Worker 0x0000000CB3822160 appears to be non-yielding on Scheduler 2. Thread creation time: 13194934683908. Approx Thread CPU Used: kernel 1843 ms, user 15890093 ms. Process Utilization 78%%. System Idle 20%%. Interval: 19958666 ms.

Loading Dump File [D:\SQLDump0001\SQLDump0001.mdmp]
Comment: 'Program fault handler'
Comment: '02/18/19 05:37:21 spid 10 Exception 0xc0000005 EXCEPTION_ACCESS_VIOLATION reading address FFFFFFFFFFFFFFFF at 0x00007FFD409A9874
'
User Mini Dump File: Only registers, stack and portions of memory are available

************* Path validation summary **************
Response Time (ms) Location
Deferred srv*
Symbol search path is: srv*
Executable search path is:
Windows 8 Version 9200 MP (8 procs) Free x64
Product: Server, suite: TerminalServer SingleUserTS
Machine Name:
Debug session time: Mon Feb 18 05:37:22.000 2019 (UTC + 2:00)
System Uptime: 2 days 6:25:57.186
Process Uptime: 2 days 6:25:53.000
................................................................
...............................................
Loading unloaded module list
....................
This dump file has an exception of interest stored in it.
The stored exception information can be accessed via .ecxr.
(aa8.2154): Access violation - code c0000005 (first/second chance not available)