Is signal elaboration in VHDL an event?
I know a signal initialisation in VHDL is an event.

No. Events occur during signal update in simulation cycles and not elaboration or initialization.

See IEEE Std 1076-2008:

14.7.2 Drivers


  Every signal assignment statement in a process statement defines a set of drivers for certain scalar signals. ... Execution of a signal assignment statement affects only the associated driver(s).  
  
  A driver for a scalar signal is represented by a projected output waveform. A projected output waveform consists of a sequence of one or more transactions, where each transaction is a pair consisting of a value component and a time component. For a given transaction, the value component represents a value that the driver of the signal is to assume at some point in time, and the time component specifies which point in time. These transactions are ordered with respect to their time components.   
  
  A driver always contains at least one transaction. The initial contents of a driver associated with a given signal are defined by the default value associated with the signal (see 6.4.2.3). The kernel process contains a variable representing the current value of the driver. The initial value of the variable is the value component of the initial transaction of the driver.


6.4.2.3 Signal declarations


  If the signal declaration includes the assignment symbol followed by an expression, it shall be of the same type as the signal. Such an expression is said to be a default expression. The default expression defines a default value associated with the signal or, for a composite signal, with each scalar subelement thereof. ...  
  
  In the absence of an explicit default expression, an implicit default value is assumed for a signal of a scalar subtype or for each scalar subelement of a composite signal, each of which is itself a signal of a scalar subtype. The implicit default value for a signal of a scalar subtype T is defined to be that given by T'LEFT.


The initial value assigned to the value of a signal during elaboration comes either from the declaration default expression or the implicit default value.

14.4.2.5 Object declarations


  The rules of this subclause apply only to explicitly declared objects (see 6.4.2.1). Generic declarations, port declarations, and other interface declarations are elaborated as described in 14.3.2 through 14.3.5 and 14.6.  
  
  Elaboration of an object declaration that declares an object other than a file object or an object of a protected type proceeds as follows:  
  
  
    ...
    b If the object declaration includes an explicit initialization expression, then the initial value of the object is obtained by evaluating the expression. It is an error if the value of the expression does not belong to the subtype of the object; if the object is a composite object, then an implicit subtype conversion is first performed on the value unless the object is a constant whose subtype indication denotes an unconstrained type. Otherwise, any implicit initial value for the object is determined.
    ...
    d) Any initial value is assigned to the object.
  


During initialization the first transaction in an otherwise empty projected output waveform queue is used to determine the driving and effective values:

14.7.5.2 Initialization


  At the beginning of initialization, the current time, Tc, is assumed to be 0 ns.  
  
  The initialization phase consists of the following steps:
  ...  
  
  
    c) The signals in the model are updated as follows in an order such that if a given signal R depends upon the current value of another signal S, then the current value of S is updated prior to the updating of the current value of R:  
    
    
      — The driving value and the effective value of each explicitly declared signal are computed, and the variables representing the driving value and current value of the signal are set to the driving value and effective value, respectively. The current value is assumed to have been the value of the signal for an infinite length of time prior to the start of simulation. ... 
      ...  
    
    
    f) For each nonpostponed process P in the model, the following actions occur in the indicated order:  
    
    
      1) The process executes until it suspends.
      ... 
    
    
    ...  
  


Events require signal update:

14.7.5.3 Simulation cycle


  A simulation cycle consists of the following steps:  
  
  
    ...
    c) Each active driver in the model is updated. ...
    ...
    f) The following actions occur in the indicated order:  
    
    
      ...
      2) For each process, P, if P is currently sensitive to a signal, S, and if an event has occurred on S in this simulation cycle, then P resumes.
    
  


(Signal update and any events occur before processes sensitive to signal events resume.)

14.7.3.4 Signal update


  In order to update a signal during a given simulation cycle, the kernel process first determines the driving and effective values of that signal. The kernel process then updates the variable containing the driving value with the newly determined driving value. The kernel also updates the variable containing the current value of the signal with the newly determined effective value, as follows:  
  
  
    a) If S is a scalar signal, the effective value of S is used to update the current value of S. A check is made that the effective value of S belongs to the subtype of S. An error occurs if this subtype check fails. Finally, the effective value of S is assigned to the variable representing the current value of the signal.  
    
    b) If S is a composite signal (including a slice of an array), the effective value of S is implicitly converted to the subtype of S. The subtype conversion checks that for each element of S there is a matching element in the effective value and vice versa. An error occurs if this check fails. The result of this subtype conversion is then assigned to the variable representing the current value of S.  
  
  
  The current value of a signal of type T is said to change if and only if application of the predefined “=” operator for type T to the current value of the signal and the value of the signal prior to the update evaluates to FALSE. If updating a signal causes the current value of that signal to change, then an event is said to have occurred on the signal, unless the update occurs by application of the vhpi_put_value function with an update mode of vhpiDeposit or vhpiForce to an object that represents the signal. ... The occurrence of an event will cause the resumption and subsequent execution of certain processes during the simulation cycle in which the event occurs, if and only if those processes are currently sensitive to the signal on which the event has occurred. 
  
  ...  
  
  A net is a collection of drivers, signals (including ports and implicit signals), conversion functions, and resolution functions that, taken together, determine the effective and driving values of every signal on the net.  
  
  For any signal that is part of a given net, the driving and effective values of the signal are determined and the variables containing the driving value and current value of that signal are updated as previously described in those simulation cycles in which any driver or signal on the net is active.


A new driving value comes from assignment (see 10.5 Signal assignment statement, 10.5.2.2 Executing a simple assignment statement) which can provide new transactions in scalar projected output waveforms, evaluated during in a simulation cycle where the the first transaction value may be different from the current value.

Every process is executed until it suspends during initialization and can be source for new signal assignments and new transactions in a driver's projected output waveform queue.

Events require change in the driver value and that happens in simulation cycles (14.7.5.3 Simulation cycle) during signal update and prior to process resumption.

An explanation of when a process (11.3 Process statement) is resumed is found in 10.2 Wait statement.