Actually, I think this is how it’s intended to work (since they haven’t changed its behavior for so many versions till today), to be able to get the actual Exception source only from a child WorkFlow.
This is how I’m doing it. As an advice, try to use the RE Framework, it has a very nice set-up and it saves a lot of work from your side.