Any kind of control which presents a visual start and stop is going to be problematic for your criteria. Why not just use scroll to modify the input field? The ratio of pixels to distance units can be customized, and scrolling affords a much more natural interaction than repeated clicking/tapping, or trying to carefully navigate a number line. I've prepared an example to show how it'd work:
http://codepen.io/jessejackson/pen/taAbB
The only things you'd have to modify are:
- Make it a scrollable element within the flow of your form/page
- Add an EventListener which would modify the scroll position if the user manually entered a value (so that if/when the user scrolls again afterward, it would begin to modify the value starting at the point the user entered). In this step, you would also add functionality to increase the height of the scrollable element in case the user enters a [ridiculous] value beyond the element's maximum (I started it at 20 000 000).