I’d say ask the original developer directly. Getting your changes merged upstream should be the preferred option for you, the original dev and the users. If everything goes right, you both could figure out a way to do this, maybe by re-introducing your refactorings and fixes one by one in smaller pull requests. Maybe you could become a maintainer in the process and support the original dev long term so everybody wins.
If the original developer doesn’t respond or declines you could think about bringing your own fork forward. Think about the consequences though, the original dev might get frustrated by a competing fork and abandon the project completely. The users on the other hand might be confused or insecure about which version to choose. Your fork must offer a lot for them to jump ship and switch.
Generally I’d say open source is about working together, not against one another, so just shoot them a message and see where it goes.
You’re right.