ResolvedFor anyone seeing this issue in the future, I've actually resolved this issue now by using AllowUpdates() which I wasn't previously using. You may also notice that I pull the SetContent out of the GoTo loop, that was just because it wasn't necessary to set each time. See corrected code below:
' Code to initialize springboard here
'....
springBoard.UseStableFocus(true)
springBoard.SetContent(o)
regenerateSpringBoardButtons:
springBoard.AllowUpdates(false)
springBoard.ClearButtons()
If (isToggledOn = true) Then
springBoard.AddButton(1,"Option On")
Else
springBoard.AddButton(1,"Option Off")
End If
springBoard.AllowUpdates(true)
springBoard.Show()
While True
msg = wait(0, port)
If msg.isScreenClosed() Then
Return -1
Elseif msg.isButtonPressed()
print "msg: "; msg.GetMessage(); "idx: "; msg.GetIndex()
idx = msg.GetIndex()
If (idx = 1) Then
updateOptionToggleState()
goto regenerateSpringBoardButtons
End If
Endif
End While