As an update, using writeMicroseconds() does allow me to get the range I want. So it appears that servo.attach() does not pay attention to its min,max parameters, and the default range is not the standard 544-2400 microseconds.
I haven't test it, but why don't you try with Mikal.Hart's servo library https://github.com/mikalhart?tab=repositories ? It might work for you, also check this post https://communities.intel.com/thread/48546 in there Mikal.Hart provides detailed info of the library. I hope you find this useful.
I had used that previously, but thought those changes might have been incorporated into this new new release. Maybe not? There do seem to be some changes in the new servo.h, because the behavior is better - i.e. it is much smoother moving now. And this makes me wonder if Mika.Hart's library needs updating for the new release. Anyone have any info on this?