So they have created a kind of map/reduce system to distribute computation over a tree, except everything still runs in the same Javascript main thread.
Not at all. Fiber is a method of divvying up the work the reconciler is doing so the main thread can process higher priority updates ahead of ones that matter less. There are other benefits, but this is the central one.
UI updates seem to be only possible in the main thread
My understanding is that it's a prioritisation system. If all of the UI changes can't be completed before the next render, the lowest priority changes are deferred to the next render.
It should help with things where perceived lag is undesirable, like typing in an input field.