Alright, so after a bit of fiddling around, I think I've found a solution. The problem, from my understanding, is that the kernel might not know what to do when it is asked to reboot on certain hardware. We can fix this.
Right, so first, get yourself grub customizer. Once you have it, open it, go to general settings, and under kernel parameters there is a line that should say
Now, once you have found that line, you have to edit it so it says
quiet splash reboot=pci. After you have done that, you have to go to the terminal and update the grub file by writing
sudo update-grub. Once that is done, shut down your pc and start it up again.
And you're done! Note that the reboot process is a little slow.
But wait, what if it doesn't work? Never fear. You might have to change the "=pci" to something else. Below is a list of commands you can try. However, from my understanding, 90% of all the issues can be fixed with either "=pci", "=bios", or "=acpi".
warm = Don’t set the cold reboot flag
cold = Set the cold reboot flag
bios = Reboot by jumping through the BIOS (only for X86_32)
smp = Reboot by executing reset on BSP or other CPU (only for X86_32)
triple = Force a triple fault (init)
kbd = Use the keyboard controller. cold reset (default)
acpi = Use the RESET_REG in the FADT
efi = Use efi reset_system runtime service
pci = Use the so-called “PCI reset register”, CF9
force = Avoid anything that could hang.
List was copied from this site
Hopefully that can help someone.