I don't know much about patent law, but why not just allow for open use? If a person wants to use that tool in a for profit company, then they just pay royalties. Else, just let it. S.
Company or private person submits a patent.
The government determines what they would pay to make the technology open (i.e., benefits to society). This is similar to the process of determining the subsidy to develop new technology.
Government makes an offer. Submitter can accept or reject.
If rejected, the patent remains secret, but other companies have the right to independently invent the same technology.
If accepted, the patent is published. If other companies want to use the technology, they will need to buy a license from the government. Submitter has no control over who may or may not use the technology.