Thanks to everyone for their suggestions!

As far as the jumping is concerned, having the platforms close enough to the border of the area and to each other is sufficient to trigger a "jump" from one platform to the other (although clicks on the platforms themselves are currently not registered as move commands, you have to click outside them and hold the mouse button to move onto them; a controller may be more convenient, although this may also be solvable in case the AI grid gets adjusted). I don't intend to try to bridge any actual gaps.

In terms of platform, I'm currently using a HUM_StoneBench_A with WalkOn=True that is submerged in the soil up to the point that only the top slab is visible.

The good news: even without any AI grid adjustments, the character gets on top of it while walking (even if the platforms is moving) and can "run along" with the platform's movement.

The bad news: any kind of lava (created via TriggerCreateSurface, or by changing the AI grid over which the object moves to "lava") "permeates" through the object's top (even if it floats quite a bit over the surface), and hence standing on top of the moving object doesn't protect you from the lava. I was hoping to be able to assume that if you were in a certain area trigger and alive/not burning, you'd be on top of one of my platforms, because everywhere else in that trigger there'd be lava.

Now, this lava issue may be related to the fact that there's indeed no AI grid associated with my moving objects. However, this fact is also noted by Osiris itself, and it seems to suggest I can do something about it: "Moving item LEP_Row1Slab_001 which has no AI bound. If you move items, give it an AI bound. Otherwise it will be static on the AiGrid!"

There are a few moving items in the main campaign that in theory should provide all I need, such as ITEM_CYS_Church_Altar (the altar in the old church that hides the entrance to the cave below). I can't figure out how to create this "AI bound" though, nor do I see any special settings or scripts for ITEM_CYS_Church_Altar. Anyone have any ideas about this?

As an aside, in case someone else ever wants to create moving objects that occasionally have to be warped to a different location: use ItemMoveToTrigger() and then catch the ItemMoved() event to determine when it has arrived for regular movements. If you want to warp/teleport it at some point, do not use ItemTeleportToTrigger(), nor ItemSetOnStage(0) followed by ItemMoveTo*() (and then again ItemSetOnStage(1)). The reason that in that case the subsequent ItemMoveTo*() call will be ignored and your object will get stuck. Instead, what I'm currently doing is move it at very high speed (1000.0) to the place where I want it to be, which also gives the impression of instantaneous movement (you can make it move via a bunch of underground triggers to be cleaner).