Your business model is flawed for a number of reasons. Firstly,
companies make money from their own products, not paying staff to
figure out which bug fixes/features to cherry pick for the tool
Secondly, no one makes money by locking out others when they
themselves can be locked out in the same manner. This is
basically what your model seems to boil down to.
Party 'A' provides patches X,Y,Z in the compiler and others have
to pay for them. Party 'B' provides patches M,N,O and similarly,
others pay for them. Now party A does not benefit from M,N,O
unless they pay for it and party B does not benefit from X,Y,Z
unless they pay for it. So no one wins.
So the best solution is A and B both open their patches and both
benefit from all contributions.
Thirdly, how can one separate the features? For example, say I'm
willing to pay for features X,Y,Z but not M,N,O. How do the D
devs split the features out so I only get M,N,O? Separate and
special builds for each paying customer?
Fourthly, what about the OSS people using D? Are the X,Y,Z and
M,N,O features released GPL so they can benefit immediately or do
they wait 6 months?
If it's 6 months why would anyone pay for the features? If it's
longer than 6 months, or even if its GPL I think most will
abandon D and go to Nim or Rust.