You can kind of do it without a DLL, just keep track on the close event and open the dialog again if it gets closed. You can still cancel it out by pressing CTRL+pause/break, or break it by holding ESC.

Code:
dialog -l helloworld {
  title "Hello world!"
  size -1 -1 100 50
  option dbu
  text "Hello world!", 1, 0 10 100 8, center
  button "HALP!", 2, 0 38 100 12
}

alias helloworld noop $dialog(helloworld,helloworld,-2)

on *:dialog:helloworld*:*:*: {
  if ($devent == close) noop $dialog(helloworld $+ $ticks,helloworld,-2)
  elseif ($devent == sclick) && ($did == 2) dialog -x $dname
}