The problem is that the exception is not a property and therefore log4net cannot find anything with the key "exception" and thus you get always null.
In order to solve your problem you can create your own layout converter like this:
public class RawExceptionLayout : IRawLayout
{
public virtual object Format(LoggingEvent loggingEvent)
{
return loggingEvent.ExceptionObject;
}
}