EndTask takes _three_ parameters. This is how to call EndTask to 'force' the process to terminate. I assume this will work like the WMI method.
DllCall("EndTask" , Ptr , WinExist("ahk_exe Pvxwin32.exe") , UInt, false , UInt, true) ; force MsgBox, % ErrorLevel
If by 'soft' killing the process (EndTask -> false) it is Windows that eventually kills the process because of the timeout, then that probably means that the process could just be 'hard' killed, as the process will hang anyway.
As for which method is the best, just pick the one you want.