I cannot do the peer to peer topology as I'm using Websockets (Browser based). But I wish I could.
You can have a logical peer to peer topology (one player "hosts" the game instance) while you still use a physical start topology (a single server repeats messages to other players in the same session.)
how do I go about having the monster inch its way closer and closer to the player?
Then you need to have monsters ative when they're close enough that they should know where the player is to start moving towards it.
not sure how to make the server authoritative to track monster movements and AI
Just make it authoritative. If it runs too slow, first look for options to optimize the implemented code, and only when you can't do that anymore, split your world across multiple processes (cores.) I think you over-estimate the "cost" of running simulations on server side. As long as you don't add too much unnecessary indirection or repeated re-processing, you can push a lot of load even on a medium-capable modern CPU.