StopAllProcess()
Running your source code reveals that StopAllProcess() is called multiple times, but Command?.Cancel() throws a null reference exception.
fix advice:
public void StopAllProcess()
{
stopProcess = true;
if (Command != null)
{
try
{
Command.Cancel();
}
catch
{
// Ignore any errors in cleanup
}
}
timerReport?.Stop();