If you want to make new works that are not GPLd, not GPLing the building blocks would let you do that.
Alternatively, you could LGPL the building blocks, still allow the end products to not need to be GPLd, but require development on the building blocks to be open sourced.
Sven doesn’t care about contributing his changes back to your tree and does not assign you copyright. GPL is fine for Sven. Ingrid can use Sven’s GPL changes because she’ll use that license too. You want to dual licence, you can’t use Sven or Ingrid code.
Copyright assignment + gpl so you can charge for a different licence too only works if nobody wants to fork. Doubt that’s the case for this sort of thing.