How about this process:
1. File the patent application. The application will not be publicly viewable, but it will hold your place in line. Also, this starts the patent period and determines the expiration date.
2. Develop a prototype or license the patent to someone who can develop a prototype.
3. Notify the patent office that you now have a prototype. The patent application now becomes publicly viewable and you can enforce it.
If someone invents a device that would be infringing after step 1 but before step 3, then the presumption should be that the application was obvious and you should lose your patent. Note that this is a presumption (like innocence) and can be challenged. For example, a potential licensee may develop a prototype from your patent without actually paying your license fee. Obviously in that case, you can enforce the patent on them.
If the patent period expires without you completing step 2, your patent is over and you can't enforce it.
This hits patent trolls (who never develop prototypes) while leaving a true research institution alone.