I would suggest to use a branch for the next major release. For now 0.4.x. All pull request that change the API or are not backwards compatible will be merged into that branch. All other pull request will be merged directly into master.
This way the difference between master and the next major release should be kept as small as possible.
Any other ideas? Arguments?