I suspect the straight stretch near the old Silvertown station is the most practical option but that suffers from distance to the terminal plus having to cross a residential area.
Sure, but we have to put that into perspective: The distance from the train to check-in would not be longer than most distances one has to cover when arriving on public transport at LHR or LGW.
I don't think the line does pass directly below the terminal building. I think it cuts the corner at the furthest west portion of the LCY site, beyond the terminal, beyond the western pier, underneath the Jet Centre.
If the satellite images I have seen are not misleading, the crossrail track pretty much follows the old Silvertown branch line track and passes somewhere between the jet centre and the Travelodge, so indeed it is not in the immediate vicinity of the airport terminal.