Is there a standard set of HTTP 500.xx codes?-Collection of common programming errors

Is this sub-code standardised or can I freely use it?

It is not possible to use it, quote RFC 2616:

The Status-Code element is a 3-digit integer

MSDN says for the HttpResponse.SubStatusCode:

Independent of whether tracing is configured, the code is never sent as part of the final response to the request

So, it is only used for logging and troubleshooting, not sent to the client.