Did Jonathan Fraser Kill Elena Alves?
At first, it seems like a stretch to name Jonathan (Grant) as a suspect. He and Elena (Angelis) never interact in the first episode, and it appears the only reason he even knows about Elena is because Grace (Kidman) told him about her and pointed her out at the charity auction. However, it's worth noting that Jonathan did leave the charity auction shortly after Elena did after he supposedly got called into work. He didn't return home until late at night and was visibly shaken up when he did.
And after episode two, we now know why. As it turns out, Jonathan was secretly having an affair with Elena after he met her at the hospital he used to work at, and he even admitted to Grace that they fought and had sex on the night of her death, though he claims he didn't kill her. The episode ends before we learn anything else, other than the fact that he helped Miguel get into Reardon. However, by episode four, Jonathan confesses to knowing who the killer is, but it ends before he gets the chance to reveal their identity.
Turns out, the show decided to stick to the same storyline as the book, because during Sunday's finale, it's finally revealed that Jonathan is in fact the killer after Grace takes him down in court with the help of Sylvia (Lily Rabe). Almost immediately after Grace finishes taking the stand and leaves the courtroom, Haley (Noma Dumezweni) turns to Jonathan and tells him that it's his own fault that he got caught because he didn't get rid of the murder weapon. It's there and then that we learn that Jonathan did indeed kill Elena. Even though he tries to make a run for it by kidnapping Henry and attempting to jump off a bridge, he eventually changes his mind and ends up getting arrested.