900 for most sources would be a little low for an encode at such a high res, especially 1 pass without pre filtering. Hmm, only goes upto 8000 for me... Sounds like you are still using a devapi3 build to me, which means it doesn't even have a PAR setting so you should definatly be getting distorted output, especially if the source is 16:9.
My advice would be to switch to a devapi4 build such as Koepi's 1.0RC3. Use two passes or possibly even 3 using ARCalculator. I would also use he aac for the audio, allowing for a higher video bitrate.
By subtitles that work in every player I assume that you are talking about burnt in subs? Same can be done using AVISynth to frameserve.