I think the best way to deal with this is, as other people in this thread have mentioned, abstraction.
Units have an eros value for one another, and that influences how they act around each other. As the eros value of two of your dwarves for one another grows, they start to spend more of their free time with one another. They might eat together, go on dates together, eventually sleeping near each other, etc. As they spend time together, their eros value for one another grows further. The higher the eros value between the two dwarves gets, the more they start to desire more privacy for some of their quality times, until it's implied that the two have had sex, but only implied. Whenever two heterosexual dwarves spend private quality time with one another, there's a chance that conception will happen.
If the eros value increases above a certain level, one of the dwarves may propose. What level that is depends on how comfortable the dwarves in question are with commitment. Other dwarves may raise eyebrows if the eros value gets too high without the marriage happening, depending on how conservative the values of said onlooking dwarves are (Love and marriage, love and marriage/Go together like a horse and carriage/This I tell ya, brother/You can't have one without the other!).
Eros values are not necessarily mutual. Unrequited love can occur, and if one dwarf is too pushy in requesting to spend time with another, rejection is a distinct possibility, depending on the temperament of the other dwarf. If one dwarf gets way too pushy, perhaps resorting to coercive means, then rape may be implied.
But only implied.
Again, abstraction is the way to go rather than granularization. Granularity is usually how Dwarf Fortress rolls, but as the saga memoriae damnata testifies, in this case, granularity is not what we want.