All embedded objects on a quiz or KC slide have top priority, they are alway on top of custom objects. The Submit button is the most essential embedded object, it is linked to the pausing point of the slide and has all the functionality of the Submit process. Since it is embedded it has no individual timeline, nor an ID and can/should never been hidden?
For SWF output I had a workaround, where I had those custo mobjects on the slide before the quiz slide (very short slide) timed for the rest of the project and then it could appear on top. That is not working for HTML5 output however.
I a bit worried about '.... and some custom buttons'. What is the goal of those? Maybe you should create a custo mquiz slide, instead of using the default KC slides. Then you don't have to worry about embedded objects, have full control over everything but working out the advanced or shared actions will take more time.
A possible workaround could be to make the Submit button 'invisible'. In the themes packaged with Captivate it is always a transparent button, you can set Alpha and stroke to 0. Then create an image looking like that original button and put it on top of the now invisible Submit button. Hide that image with the same ation which you use to show the custom objets. Beware: the Submit button is still there, but after the first click it s not really active anumore.