So i was able to solve this (although admittedly not really how i wanted to )
I see in PageBase.cs where it should be setting the 404, but it doesn't seem to actually get triggered.
I'm on version 7.04.01
by adding the following into Default.aspx on line 866
//Added a 404 status if the page is the 404 error page
if (Page.Title.IndexOf("Error404") > 0) Response.StatusCode = 404;
also needed the following web.config settings
line 112
<httpErrors>
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" prefixLanguageFilePath="" path="/Error404.aspx" responseMode="ExecuteURL" />
<remove statusCode="500" subStatusCode="-1" />
<error statusCode="500" prefixLanguageFilePath="" path="/Error404.aspx" responseMode="ExecuteURL" />
</httpErrors>
line 206
<customErrors mode="On">
<error statusCode="404" redirect="/Error404.aspx" />
<error statusCode="500" redirect="/Error500.aspx" />
</customErrors>
seems like its not getting to Handle404Exception in PageBase.cs , when i try to attatch a remote debugger i keep getting "no symbols loaded" for most of the project. not sure why as i added a path to the symbols locally, maybe i need to put them on the server and load from there ?