1. Here are a couple ways.. LOS is one. Running an event on your monsters that compares monsters X,Y position to players and if less than player.x+range, player.y+range then toggle an in range variable... or use an invisible "detection radius sprite pinned to player to trigger monsters (like I did here with "sound radius" https://drive.google.com/open?id=0Bx-ufu2WID53SGg5cDgzOF9Qa00) (click the download arrow in the upper right of screen)
2. Either way is fine but you have more control using bullet behavior. You will have to make events either way that determine when the monsters goes a certain way regardless. Making a monster wander is simply AI, make an action loop where monster randomly changes directions or actions every so often.
3. You would be best using bullet behavior for movement then since it doesn't change sprite angle unless you tell it, the sprite angle should remain unchanged unless told to angle to direction of movement (which most behaviors do internally, so use bullet and make own movement events).