Thank you for posting this fix!
I implemented the following to help my module. The module actually wraps another control that has the AJAX tab control and no DNN references (the control is totally decoupled from DNN). I used the following in my module (which does have a tie to DNN) to determine if the script manager installed on the page.
Protected Overrides Sub OnInit(ByVal e As EventArgs)
'AJAX FIX: Must have this to determine if the script manager is available; otherwise the
'ajax controls will not appear. (this happens in production but not in dev.)
If DotNetNuke.Framework.AJAX.IsInstalled Then
DotNetNuke.Framework.AJAX.RegisterScriptManager()
End If
'Does not work; however, may provide
'If AjaxControlToolkit.ScriptControlBase.ScriptManager.GetCurrent(Me.Page) Is Nothing Then
' Me.Controls.Add(New AjaxControlToolkit.ScriptControlBase.ScriptManager())
'End If
MyBase.OnInit(e)
End Sub
Hope this helps!