Not sure this is entirely the forum you need, this sounds more like a stack exchange question. However, there are probably several ways to go about something like this (I’m no expert in System.Diagnostics so maybe someone else will chime in), but here are a couple of suggestions that I can think of…
I couldn’t get much info out of the CefSharp subprocess, but by enumerating the modules of the Revit.exe process you can check if there any filenames that contain the name “Dynamo”, Revit will load these in only when the user launches Dynamo. This will only tell you if Dynamo has been opened, not that it is open… once the modules are loaded, they remain loaded until Revit is shut down even if you close Dynamo.
Another crude method is to check the latest dynamo log file, if it does not say Goodbye, then it is open.
Or, you could just create a ViewExtension. I have no idea what it is you are trying to do, but you could use it communicate to another process when Dynamo is open or has been closed via IPC and trigger some external code.