First, let me clarify what room speed/game speed is - if you set it to 30, that means 30 steps will be executed per second, not 2 seconds per step. that would theoretically be a speed of 0.5, which you can't actually set it to - at least to my understanding as I've never needed a step to last more than a second. (The only way I know of to have a step deliberately last more than a second would be to use a loop that freezes the game until current_time exceeds a certain amount or something similar)
As for what happens when an instruction/process takes more than a step to execute - the game lags, stutters and generally runs slowly - we need to optimise our games so this doesn't happen - at least outside of loading times.
In order to answer your main question, it is indeed possible for an instruction to take longer than a step to execute (and by that I mean the expected duration of a step) - the next step will not happen until all instructions in the current step have been completed.
I hope this helps in some way!