PowerPoint hanging on Application.Quit call
===

Here's the code I'm running:

    MsoTriState readOnly = MsoTriState.msoTrue;
    MsoTriState untitled = MsoTriState.msoFalse;
    MsoTriState withWindow = MsoTriState.msoFalse;
    string filePath; //some file path to a pptx

    ppt.Application app = null;
    ppt.Presentations presentations = null;
    ppt.Presentation presentation = null;

    app = new ppt.Application();
    presentations = app.Presentations;
    presentation = presentations.Open(filePath, readOnly, untitled, withWindow);

    System.Runtime.InteropServices.Marshal.FinalReleaseComObject(presentation);
    presentation = null;
    System.Runtime.InteropServices.Marshal.ReleaseComObject(presentations);
    presentations = null;

    app.Quit(); //HANGING HERE

    System.Runtime.InteropServices.Marshal.ReleaseComObject(app);
    app = null;

It's a very basic code that opens a PowerPoint application and then closes it. However, for some reason, it is hanging on the `app.Quit()` call. Also, I don't know why, but if I comment out the line where I ComRelease presentation, it doesn't hang. An alternative hack is to make app.Visible = msoTrue before calling app.Quit.

Does anyone know what is going on here? Am I messing up my ComRelease procedure?