You didn't mention the obvious solution: a single connector for all the circuits. For example, a genderless array connector*.
Or, for minimal cost, an elastomeric "Zebra" strip* (only for slow, low current signals).
Or, for flexibility, consider one or more FFC (Flat Flex Cable) jumpers and FFC sockets* on each PCB.
Assuming that there is a reason why you must have 20 separate connectors, then consider board-to-board mezzanine connectors with a high degree of compliance to accommodate misalignment. For example, blind-mate board-to-board connectors* or genderless self-mate mezzanine connectors*.
Or, consider compression components: pogo pin headers* or spring leaf headers* on one board and matching targets* on the other board.
(*) My site