About the first problem. Yes, I understand what you are trying to do, but with this approach gaps in sequence are inevitable. It's the same as if the user deleted a particular record. If you really really want to avoid gaps - don't show the auto-incremented number on a form of the new object.
The second problem - check out the rule log. Somehow NEXT_SEQUENCE_NMB is executed and the value of auto-incremented attribute is still undefined (maybe it is reset to UNDEFINED by the rules after it has been assigned). If the rule log does not reveal anything please send us the BSV for investigation.