Me again .. Savusavu is far off the usual holiday trail, so I'm not surprised you didn't find much.
Staying anywhere for 3 weeks is almost like settling down. So, whether it will be too much or not depends a bit on what you have in mind. There is not a huge amount of variety in things to do, so 3 weeks might be difficult to fill if you were thinking about a busy tourist itinerary.
However, if you can establish a daily routine and sort of 'settle down', then 3 weeks might pass quickly. Savusavu is a favourite hangout for yachties and some retirees, and there is a small semi-permanent expat community there. This adds something as far as socializing is concerned, to help fill up the hours and days. The crowd irritated me at first, but I adapted to it. It wasn't difficult to spend several days just wandering around town, chatting with people about their life there, sipping on a beer in the evening (or kava in the market).
I didn't do any snorkeling while in Savusavu, so cannot rate it. But, I heard some good reports, the reef/beach/snorkeling area is about 4-5 km south of the town center. I think Jacques Cousteau's son has something to do with an upmarket resort there...or maybe I'm remembering the story wrong.
There is a national park/nature reserve in the middle of the island, on the way to Labasa, and it is a possibility for some jungle trail hiking. I found Labasa an interesting place to visit, but it is devoid of the conventional "tourist attractions". I liked it because it was a normal town, and I found it interesting to just hang around there for a few days and get a feel for local life. But .. that's just the sort of thing I like to do when I visit a place.
As usual, I can't give solid advice about vegetarian because I was not on the look-out for it specifically. I might order a vegetarian stir-fry or veg fried rice if it was on a menu (meat tends to be expensive and I stay away from it on my budget trips). Since there is the ex-pat community in Savusavu, and a couple of the restaurants are run by and for the expats, maybe it will be easier to get vegetarian style meals at these places.
Regarding transport, the island is hilly and not many roads are paved. A bike might be good enough for around Savusavu (eg to get to beach). But beyond that you need to be super fit or use a car or other public transport. The main road to Labasa is paved and also some of the roads immediately around Savusavu. Other than that it will be mainly dirt roads.
Some photos here.