Introduce OngoingExchange

**Description:** Introduce OngoingExchange to solve the problem of our code knowing more than it should know before it happens. In upcoming PRs the information at Exchange will be reduced respect with OngoingExchange (that has the benefit of being created after the handshake).
**Testing:** tests pass.
**Coverage:** unchanged.
BTW, just to not going further out of the focus of the sprint I've added some TODO comments to the things I'm not going to fix yet.