If you stay with your current topology, one important thing to note is that the absolute precision of R1 and R2 basically doesn't matter (so long as you can disregard input leakage, which - for 1k - you can; and output impedance of your reference which you have not specified). What matters is the matching ratio between the two. If they drift by 20% and 20.0001% respectively your output will still be accurate. One easy (though expensive) way to pursue this is the use of an integrated divider with defined matching such as the Vishay ACA series with absolute tolerance of 0.1% but matching tolerance of 0.05%. If you pay a lot more you can get this to 0.01%. Since your question doesn't specify a final output tolerance it's not clear whether this is called for.
Your \$I_{CE}\$ is 40mA and \$V_{CE}\$ 1.5V. The BJT at approximately those conditions (50mA, 1V) has an \$h_{FE} \ge 60\$; for less current you'll have more gain (to a point). The op-amp needs to try and feed a small base current that will not saturate the BJT - based on figure 16 this will be less than 3mA. Such a low current should not see any adverse effect from the output impedance of the op-amp itself, though I'm not an expert in this area.
The one easily identifiable source of error (other than resistor tolerance) will be op-amp input offset, as you've identified. Offset trimming pins seem to have fallen out of favour so your best bet is a lasered pre-trimmed device. You say you need sub-700uV: this is fairly easy; these things go down to 100nV. The TI LM358B series has 300uV typ, and can operate on a 3V single-ended supply; or you can pay more for less offset.